2017-03-13 24 views
3

Webpack2を使用してファイルをコンパイルしたとき。Webpack 2の解決方法loaderUtils.parseQuery()警告?

私はgithubのページをチェックし、どのように出て見つけることができませんでした

https://github.com/webpack/loader-utils/issues/56を参照してくださいloaderUtils.parseQuery()問題 ことができる文字列以外の値を受け取った」:これは、次の警告がありましたこの問題を解決します。これは私の設定です:

// webpack 2 configuration 
// https://webpack.js.org/guides/migrating/ 

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

module.exports = { 
    watch: true, 
    inline: true, 
    resolve: { 
    modules: [ 
     'node_modules', 
     path.resolve(__dirname, './app'), 
    ], 
    //http://webpack.github.io/docs/configuration.html#resolve-alias 
    alias: { 
     lib: path.resolve('./lib'), 
     res: path.resolve('./res'), 
     style: path.resolve('./style'), 
     //make sure it can be load by 'jquery' 
     jquery$: 'jquery', 
     // 01/26/2017 http://isotope.metafizzy.co/extras.html#webpack 
     masonry: 'masonry-layout', 
     isotope: 'isotope-layout' 
    }, 
    extensions: ['.js', '.json', '.jsx', '.css'], 
    }, 
    devtool: 'source-map', 
    target: 'web', // enum 

    entry: { 
    // entry points 
    app: path.resolve('./app') + '/' + 'main.js', 
    //for basic stable library only 
    vendor: ['babel-polyfill', 'jquery', 'lodash', 'react', 'react-dom', 'bootstrap-sass', path.resolve('./app') + '/' + 'vendor.js'], 
    }, 
    output: {path: path.resolve('./script'), publicPath:'script/', filename: '[name].js', /*chunkFilename: '[id].js'*/}, 
    module: { 
    rules: [ 
     { 
     test: /.jsx?$/, 
     loader: 'babel-loader', 
     exclude: /node_modules/, 
     query: { 
      presets: ['es2015', 'react'] 
     } 
     }, 
     { 
     // test: /\.woff2?$|\.ttf$|\.eot$|\.svg$/, 
     // loader: 'file' 
     // https://github.com/webpack/webpack/issues/597 
     test: /\.woff($|\?)|\.woff2($|\?)|\.ttf($|\?)|\.eot($|\?)|\.svg($|\?)/, 
     loader: 'url-loader' 
     }, 
     // NOTICE: png/jpg needs specific loaders, see https://github.com/webpack-contrib/css-loader 
     { 
     test: /\.png$/, 
     loader: 'url-loader', 
     options: {limit: 100000}, 
     }, 
     { 
     test: /\.jpg$/, 
     loader:'file-loader' 
     }, 
     { 
     test: /\.s?css$/, 
     // https://css-tricks.com/css-modules-part-2-getting-started/ 
     // css?modules&importLoaders=1&localIdentName=[name]__[local]___[hash:base64:5] 
     loader: ExtractTextPlugin.extract({ 
      fallback: 'style-loader', 
      use: 'css-loader!sass-loader', 
     }) 
     } 
    ] 
    }, 
    plugins: [ 
    new webpack.optimize.CommonsChunkPlugin({name:'vendor', filename:'vendor.js'}), 
    //export to global for bootstrap and etc. (needs jquery ^2.0) 
    new webpack.ProvidePlugin({$: 'jquery', jQuery: 'jquery', 'window.jQuery': 'jquery'}), 
    new webpack.optimize.UglifyJsPlugin({ 
     compress: { 
     warnings: false, 
     }, 
     output: { 
     comments: false, 
     } 
    }), 
    // http://webpack.github.io/docs/stylesheets.html 
    // https://github.com/webpack/webpack/tree/master/examples/multiple-entry-points-commons-chunk-css-bundle 
    new ExtractTextPlugin({filename: '[name].css'}), 
    new webpack.LoaderOptionsPlugin({ 
     debug: true, 
     // test: /\.xxx$/, // may apply this only for some modules 
     options: { 
     // for @import path in the style file 
     sassLoader: {includePaths: [path.resolve('./style') + '/']} 
     } 
    }), 
    ] 
}; 

私は考えています。

答えて

8

loaderUtils.parseQuery()ローダーは、ローダーに渡されるオプションを取得するためにローダーによって使用されます。それはloaderUtils.getOptions()に置き換えられました。あなたはおそらくまだparseQueryを使用しているローダーを使用しています。 webpackの設定で使用しているローダーはすべてgetOptionsに変更されているはずですが、変更を含まない古いバージョンのものを使用している可能性があります。これを修正するには、ローダーを最新バージョンにアップグレードするだけです。何らかの理由であなたはすべてのローダーをアップグレードしたくない場合は

は、あなたが(ないオプションとして)WebPACKの設定ファイル内の次の行を追加することができます。

process.traceDeprecation = true; 

はこれがあなたにスタックトレースを与えますparseQueryが使用されているので、実際に使用しているローダを特定し、その特定のものをアップグレードすることができます。


それは、最新のbabel-loaderはまだparseQueryを使用して、それが次のメジャーバージョンに変更され、それがv7.0.0-alphaですでに利用可能だということが判明しました。しかし、アルファ版を使用したくない場合は、v7.0.0が出てくるまで警告を出してください。

+0

ありがとうございました。このソリューションは私にとって完璧に機能します! –

+0

これは、旧バージョンのWebpackをインストールする依存関係によっても発生する可能性があります。 create-react-appを使用する場合は、[このスレッド](https://github.com/facebookincubator/create-react-app/issues/2352)を参照してください。 – BonsaiOak

関連する問題