2017-05-28 800 views
1

我有一個角度2的項目最初用於捆綁工作與systemjs。webpack如何替換.ts文件中的字符串?

現在我想用webpack捆綁這個項目。

但是原來的代碼有很多這樣的字符串。如

我想用文件所在的絕對目錄替換所有的字符串。原始時間,產品模式或開發模式下,這個字符串將被替換爲一個路徑字符串。

現在我想在編譯.ts文件之前使用webpack替換這個字符串。我應該使用什麼樣的插件?

例如: login.module.routing.ts

{路徑: '登錄',/應用/ src目錄/登錄#的LoginModule},

我想之前使用的WebPack編譯取代。

如:{路徑: '登錄',/根/ myproject的/應用/ src目錄/登錄#的LoginModule},

非常感謝!

回答

3

對於此需求,您可以使用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() 
    ] 
} 

我希望這有助於解決您的問題。

+0

非常感謝,謝謝!這是非常有幫助! –

+0

太好了,你可以做一個upvote並將其標記爲正確答案,這將有助於其他用戶查看解決方案是否有效。祝你有美好的一天。 – mbppv

+0

對不起,當我做了upvote,它說:謝謝你的反饋!投票不低於15名的選票將被記錄下來,但不會改變公開顯示的職位得分 –