Typescript 排除/替换/别名生产内置包中的某些模块

Typescript 排除/替换/别名生产内置包中的某些模块,typescript,parceljs,Typescript,Parceljs,我正在使用parcel,我想从生产中排除一些代码,以尽可能节省空间。 我使用io ts来验证来自后端的数据。我希望这种行为出现在测试和开发构建中,而不是在生产中 (我正在使用打字脚本) //这就是它在非生产版本中的外观 从“io ts”导入*作为t; const schema=t.array(t.string); 导出函数getData():t.TypeOf{ 返回fetch('/data')。然后(resp=>resp.json())。然后(data=>{ if(schema.decode(d

我正在使用parcel,我想从生产中排除一些代码,以尽可能节省空间。 我使用io ts来验证来自后端的数据。我希望这种行为出现在测试和开发构建中,而不是在生产中

(我正在使用打字脚本)

//这就是它在非生产版本中的外观
从“io ts”导入*作为t;
const schema=t.array(t.string);
导出函数getData():t.TypeOf{
返回fetch('/data')。然后(resp=>resp.json())。然后(data=>{
if(schema.decode(data)。_tag!=“Right”)抛出“ERROR!!!”;
返回数据;
});
}
//这是生产
导出函数getData(){
返回fetch('/data')。然后(resp=>resp.json());
}
我试着把它分成两个模块

//data-core.ts
导出函数getData(){
返回fetch('/data')。然后(resp=>resp.json());
}
//data.ts
从“./data core”导入{getData作为getData_};
从“io ts”导入*作为t;
const schema=t.array(t.string);
导出函数getData():t.TypeOf{
返回getData\()。然后(数据=>{
if(schema.decode(data)。_tag!=“Right”)抛出“ERROR!!!”;
返回数据;
});
}
…然后许多不同的插件导入“数据核心”而不是“数据”,如果NODE_ENV==“production”,但我失败了


我还尝试使用process.env.NODE_env来使用真正的验证器或
{decode:x=>({u-tag':'Right'}})
希望树摇动可以摆脱未使用的验证器,这是不幸运的。

您的备选方案都可以是有效的方法。你能再描述一下,为什么它失败了,而你“运气不好”(错误消息等)?这可能会让你得到一个更快更好的答案。使用parcel plugin alias,我无法找到正确的映射,我想我已经尝试了所有可能的路径。我希望我的看法是错误的,但看起来这个插件只能用于外部模块(“preact”、“redux”),而不能用于我自己的代码库(“这个”、“那个”)。我还尝试了parcel plugin externals,其中我指定了一个函数,该函数接受路径并返回替换该模块的内容(我尝试替换为
require('./data core')
),但无法使其正常工作(与“alias”插件的症状相同)。周末后我上班时会发布错误消息。