43

このエラーは、react-hotこのチュートリアルに従ってアレイにローダーを追加した後に発生しました: https://thoughtbot.com/blog/setting-up-webpack-for-react-and-hot-module-replacement

私は得てError: Cannot define 'query' and multiple loaders in loaders listいます。

var WebpackDevServer = require("webpack-dev-server");
var webpack = require('webpack');
var path = require('path');
require("babel-polyfill");

var BUILD_DIR = path.resolve(__dirname, 'build');
var APP_DIR = path.resolve(__dirname, 'src');

module.exports = {
  entry: [
    'babel-polyfill',
    'bootstrap-loader',
    'webpack/hot/dev-server',
    APP_DIR + '/import.js',
  ],
  output: {
    path: BUILD_DIR,
    filename: 'bundle.js'
  },
  module: {
    loaders: [{
      test: /\.jsx?$/,
      loaders: ['react-hot', 'babel'],
      exclude: /node_modules/,
      query: {
        plugins: ['transform-runtime'],
        presets: ['es2015', 'stage-0', 'react']
      }
    }, {
      test: /\.css$/,
      loader: "style-loader!css-loader"
    }, {
      test: /\.scss$/,
      loaders: ["style", "css", "sass"]
    }, {
      test: /\.(png|woff|woff2|eot|ttf|svg|jpg|gif)$/,
      loader: 'url-loader?limit=100000'
    }]
  },
  plugins: [
    new webpack.ProvidePlugin({
      $: "jquery",
      jQuery: "jquery"
    }),
    new webpack.HotModuleReplacementPlugin(),
    new webpack.NoErrorsPlugin()
  ]
};
4

6 に答える 6

76

クエリは、単一のローダーの動作をカスタマイズする代替方法のようです。これは、これらのパラメーターをインラインで指定するよりもクリーンです (以下を参照)。複数のローダーが存在する場合、Webpack は構成がどのローダーに適用されるかを認識しませんquery

以下はあなたの問題を解決するはずです:

module: {
    loaders: [{
        test: /\.jsx?$/,
        exclude: /node_modules/,
        loaders: ['react-hot', 'babel?presets[]=es2015,presets[]=stage-0,presets[]=react,plugins[]=transform-runtime']
    }

編集:このソリューションは Webpack 1 で機能しますが、より最近のバージョンで機能するよりクリーンなソリューションについては、他の回答を参照してください。

于 2016-02-08T10:18:19.430 に答える
0

この解決策は私のために働いた:

module: {
        loaders:[
            {
                test: /\.js$/,
                exclude: /(node_modules)/,
                loader: 'babel-loader'
            }
        ]
    }

および .babelrc のプリセット

{
    'presets': ['latest', 'react', 'stage-0']
}

https://webpack.github.io/docs/usage.htmlを参照してください

于 2017-03-26T12:55:09.970 に答える
0

自分で解決策を見つけたので、同じ問題に直面していました。あなたはそれを試すことができます:

---ここに解決策があります---

「.babelrc」ファイルで「プリセット」を定義している場合は、「webpack.config.js」ファイルで指定する必要はありません。その後、削除するとうまく機能します


そうでない場合は、「.babelrc」ファイルに移動して、そこでプリセットを指定することをお勧めします

于 2019-02-05T06:56:08.970 に答える