webpack如何替换.ts文件中的字符串?

xue*_*ang 1 javascript plugins webpack angular

我有一个angular 2项目,最初是用来与systemjs捆绑在一起的。

现在我想用webpack捆绑这个项目。

但是原始代码中有很多这样的字符串。如

我想将所有字符串替换为文件所在的绝对目录。原始时间,生产模式或开发模式下,此字符串将替换为路径字符串。

现在,我想在编译.ts文件之前使用webpack替换此字符串。我应该使用哪种插件?

例如:login.module.routing.ts

{path:'login',/ app / src / login#LoginModule},

我想在使用webpack编译之前替换。

例如:{path:'login',/ root / myproject / app / src / login#LoginModule},

非常感谢 !

Rat*_*tan 5

对于此要求,您可以使用string-replace-webpack-plugin

用法示例:

var StringReplacePlugin = require("string-replace-webpack-plugin");
module.exports = {
   module: {
      loaders: [
         // configure replacements for file patterns 
         { 
            test: /index.html$/,
            loader: StringReplacePlugin.replace({
                replacements: [
                    {
                        pattern: /<!-- @secret (\w*?) -->/ig,
                        replacement: function (match, p1, offset, string) {
                            return secrets.web[p1];
                        }
                    }
                ]})
            }
      ]
   },
   plugins: [
      // an instance of the plugin must be present 
      new StringReplacePlugin()
   ]
}
Run Code Online (Sandbox Code Playgroud)

我希望这有助于解决您的问题。