2016-04-22 7 views
6

webpackでは、バンドルされたCSSファイルをJSファイルとは別のフォルダに展開する必要があり、イメージとフォントにも同じことが適用されます。結果は次のようになります。Webpack、テキストプラグインとイメージとフォントのリソースの相対パスを抽出します

build/ 
    js/ 
     bundle.js 
    styles/ 
     css/ 
      bundle.css 
     fonts/ 
      ... 
    images/ 
     ... 

私はWebPACKのコンフィグレーションの多くの組み合わせを試してみましたが、私はそれがこのファイル構造を生成するために取得し、同じ時間にCSSファイル内の正しい相対URLを生成することができませんでした。

私はこの設定になってしまった:

var ExtractTextPlugin = require('extract-text-webpack-plugin'); 

var appCssExtractPlugin = new ExtractTextPlugin('styles/css/styles.css'); 

module.exports = { 
    entry: { 
     app: __dirname + '/src/client/app/bootstrap.js', 
    }, 
    output: { 
     path: __dirname + '/build', 
     publicPath: '', 
     filename: 'js/bundle.js' 
    }, 
    module: { 
     loaders: [ 
      { 
       test: /\.js$/, 
       exclude: /(node_modules|bower_components|sc\.js$)/, 
       loaders: ['ng-annotate', 'babel?presets[]=es2015'] 
      }, 
      { 
       test: /\.scss$/, 
       exclude: /(node_modules|bower_components)/, 
       loader: appCssExtractPlugin.extract([], ['css', 'resolve-url', 'sass']) 
      }, 
      { 
       test: /\.html$/, 
       loader: 'html' 
      }, 
      { 
       test: /\.(jpg|jpeg|gif|png)$/, 
       loader: 'url?limit=10000&name=[name].[ext]?[hash]' 
      }, 
      { 
       test: /\.(woff|woff2|svg|ttf|eot|otf)$/, 
       loader: 'file?name=[name].[ext]?[hash]' 
      } 
     ] 
    }, 
    plugins: [ 
     appCssExtractPlugin, 
    ] 
}; 

これは動作しません - 出力ファイル構造は正しいですが、中にbundle.css画像やフォントのURLがCSSに比べて間違っているといませんファイル:

url(styles/fonts/abc.woff) 
url(images/abc.gif) 

誰でも設定を正しく設定できますか?私はパス、パブリックパス、プラグインのパス、URL /ファイルローダーのファイル名を抽出するためのアイディアが不足しています...

+0

これについての解決策を見つけましたか? –

答えて

関連する問題