2017-03-03 9 views
0

私はAngpack 2アプリでWebpackを使用しています。 My Webpack設定ファイルのローダーは以下のようになります。長いサンプルコードを避けるために、プラグインとインポートを削除しました。 Webpackはcssファイルの画像をハッシュファイル名に置き換えますが、htmlファイルでは置き換えません。私が何が欠けているか分からない。どんな指針にも感謝します。WebpackはHTMLファイルの画像を置き換えません

module.exports = function (options) { 
    const DATAS = { 
     VERSION: JSON.stringify(require("../package.json").version), 
     DEBUG_INFO_ENABLED: options.env === 'dev' 
    }; 
    return { 
     entry: { 
      'polyfills': './src/main/webapp/app/polyfills', 
      'global': './src/main/webapp/content/css/global.css', 
      'main': './src/main/webapp/app/app.main' 
     }, 
     resolve: { 
      extensions: ['.ts', '.js'], 
      modules: ['node_modules'] 
     }, 
     module: { 
      rules: [ 
       { test: /bootstrap\/dist\/js\/umd\//, loader: 'imports-loader?jQuery=jquery' }, 
       { 
        test: /\.ts$/, 
        loaders: [ 
         'angular2-template-loader', 
         'awesome-typescript-loader' 
        ], 
        exclude: ['node_modules/generator-jhipster'] 
       }, 
       { 
        test: /\.html$/, 
        loader: 'raw-loader', 
        exclude: ['./src/main/webapp/index.html'] 
       }, 
       { 
        test: /\.css$/, 
        loaders: ['to-string-loader', 'css-loader'], 
        exclude: /(vendor\.css|global\.css)/ 
       }, 
       { 
        test: /(vendor\.css|global\.css)/, 
        loaders: ['style-loader', 'css-loader'] 
       }, 
       { 
        test: /\.(jpe?g|png|gif|svg|woff|woff2|ttf|eot)$/i, 
        loaders: [ 
         'file-loader?hash=sha512&digest=hex&name=[hash].[ext]', 
         'image-webpack-loader?bypassOnDebug&optimizationLevel=7&interlaced=false' 
        ] 
       }, 
       { 
        test: /app.constants.ts$/, 
        loader: StringReplacePlugin.replace({ 
         replacements: [{ 
          pattern: /\/\* @toreplace (\w*?) \*\//ig, 
          replacement: function (match, p1, offset, string) { 
           return `_${p1} = ${DATAS[p1]};`; 
          } 
         }] 
        }) 
       } 
      ] 
     } 

答えて

2

あなたはあなたに何も処理せずに文字列を与えるHTMLファイル、ためraw-loaderを使用しています。代わりに、あなたが欲しいものを正確に行うhtml-loaderを使いたいと思っています。 .htmlルールを次のように変更してください。

{ 
    test: /\.html$/, 
    loader: 'html-loader', 
    exclude: ['./src/main/webapp/index.html'] 
}, 
+0

別のSO回答に基づいて同じことをしました。 ./src/main/webapp/app/account/password-reset/init/password-reset-init.component.ts モジュールが見つかりませんでした:エラー:エラーが発生しました。 '/ Users/company/folder/myapp'の 'html-loader'を解決できません。 @ ./src/main/webapp/app/account/password-reset/init/password-reset-init.component.ts 46 :18-65 @ ./src/main/webapp/app/account/index.ts @ ./src/main/webapp/app/account/account.module.ts @ ./src/main/webapp/ app/app.module.ts @。/ src/main/webapp/app/app.main.ts'以上のコードです。 – TechCrunch

+1

'npm install --save-dev html-loader'で' html-loader'をインストールする必要があります –

+0

私は初めてwebpackを使用しており、wepackがモジュールをそのライブラリからロードすると仮定しています。私は文字通り少なくとも2日はこのことを試して無駄にしました。どうもありがとう。 – TechCrunch

関連する問題