我的TypeScript代码中有一个基类,它接受一个对象作为args之一。我有很多类扩展了这个基类。这看起来像:
class Finances extends I18nBase {
constructor(){
super(require('./finances.tran.json'));
}
}
我已经使用这种方法为我的网站创建和调试i18n。现在我需要摆脱生产代码中的json片段。但我想关闭它们,而不是完全从代码中删除它们,就像我以后可能需要它一样。
所以我尝试了WebPack IgnorePlugin,但它给了我Cannot find module "./finances.tran.json"
错误。
有没有办法在建设阶段用require
替换所有tran\.json
的{{1}}?
更新
使用虚拟{}
文件解决它:
.json
答案 0 :(得分:1)
使用虚拟.json
文件解决它:
plugins: [
new webpack.NormalModuleReplacementPlugin(/tran\.json$/,
path.resolve(__dirname, srcRoot, 'empty_tran.json'))
]
答案 1 :(得分:0)
您可以使用string-replace-loader之类的内容来替换字符串。
module: {
loaders: [
{
test: /\.ts$/,
loader: 'string-replace',
query: {
search: '.\.\/finances\.tran\.json', replace: '{}',
flags: 'g'
}
}
]
}
或者其他一些正则表达式,而不是我在这里用来覆盖更多json文件的正则表达式。