npm启动webpack问题?

时间:2016-10-28 09:50:07

标签: node.js reactjs npm webpack

我在做出反应并尝试使用npm start启动它 - package.json - "脚本":{     "开始":"节点server.js"

所有在Windows中工作正常,但在Ubuntu控制台上尝试启动时会抛出错误

/var/www/react_pwa/node_modules/webpack/lib/RuleSet.js:143
                抛出新的错误("选项/查询不能用于加载器");

我已经更新了node.js和npm,所以我认为这可能是webpack配置问题。该文件现在看起来像这样

var path = require('path');
var webpack = require('webpack');
var HtmlWebpackPlugin = require('html-webpack-plugin');

module.exports = {
  devtool: 'eval',
  entry: [
    'react-hot-loader/patch',
    'webpack-dev-server/client?http://localhost:3000',
    'webpack/hot/only-dev-server',
    './src/index'
  ],
  output: {
    path: path.join(__dirname, 'dist'),
    filename: 'bundle.js',
    publicPath: '/'
  },
  plugins: [
    new webpack.HotModuleReplacementPlugin(),
      new HtmlWebpackPlugin({
      template: 'index.html'
    })
  ],
  module: {
    loaders: [{
      test: /\.js$/,
      loaders: ['babel'],
      include: path.join(__dirname, 'src'),
      query: {
        "presets": [
          "es2015",
          "stage-0",
          "react"
        ],
        "plugins": [
          "react-hot-loader/babel"
        ]
      }
    },
    {
      test: /\.css/,
      loaders: ["style", "css"]
    }]
  }
};

有什么想法吗?谢谢。

2 个答案:

答案 0 :(得分:2)

loaders: ['babel']更改为loader: 'babel',它应该有效。

我认为您不能使用多个“加载器”查询,因为它不知道要将哪个查询附加到哪个加载器。

答案 1 :(得分:1)

您可能错过了package.json中的依赖项。

您安装了react-hot-loadercss-loaderstyle-loaderbabel-loaderbabel-corebabel-preset-es2015babel-preset-react,{{ 1}}?

尝试运行此命令以确保:

babel-preset-stage-0

您可以在Windows设置中npm install --save-dev react-hot-loader css-loader style-loader babel-loader babel-core babel-preset-es2015 babel-preset-react babel-preset-stage-0 执行另一项操作,并确保所有依赖项都在ls node_modules中,以便您在package.json上安装它们。