2017-10-13 6 views
1

TypeScriptコードに、オブジェクトをargsの1つとして受け入れる基本クラスがあります。この基本クラスを拡張したクラスがたくさんあります。これは次のようになります。WebPack:{}で 'require' resultを置き換えます。

class Finances extends I18nBase { 
    constructor(){ 
     super(require('./finances.tran.json')); 
    } 
} 

このアプローチを使用して、自分のサイトのi18nを作成してデバッグしました。今、私は生産コードでjsonフラグメントを取り除く必要があります。しかし、私は後でそれらを必要とするかもしれないかのように、それらを完全にコードから削除しないように、切り換えたいと思います。

私はWebPack IgnorePluginを試しましたが、Cannot find module "./finances.tran.json"というエラーが表示されます。

requiretran\.jsonのすべてを交換する方法はありますか?建物の段階で{}ですか?あなたは、文字列を置き換えるためにstring-replace-loaderのようなものを使用することができるかもしれません

plugins: [ 
    new webpack.NormalModuleReplacementPlugin(/tran\.json$/, 
     path.resolve(__dirname, srcRoot, 'empty_tran.json')) 
] 

答えて

0

UPDATE

は、このようなダミー.jsonファイルとそれを解決しました。

module: { 
    loaders: [ 
    { 
     test: /\.ts$/, 
     loader: 'string-replace', 
     query: { 
     search: '.\.\/finances\.tran\.json', replace: '{}', 
     flags: 'g' 
     } 
    } 
    ] 
} 

jsonファイルの大量をカバーするためにここで使用した正規表現ではなく、他の正規表現です。

1

は次のようにダミー.jsonファイルとそれを解決:

plugins: [ 
    new webpack.NormalModuleReplacementPlugin(/tran\.json$/, 
     path.resolve(__dirname, srcRoot, 'empty_tran.json')) 
]