Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reactjs 使用grunt运行Web包开发服务器时出错_Reactjs_Webpack_Gruntjs_Webpack Dev Server_React Hot Loader - Fatal编程技术网

Reactjs 使用grunt运行Web包开发服务器时出错

Reactjs 使用grunt运行Web包开发服务器时出错,reactjs,webpack,gruntjs,webpack-dev-server,react-hot-loader,Reactjs,Webpack,Gruntjs,Webpack Dev Server,React Hot Loader,我目前正在从事一个sails react项目。我希望使用webpack dev server和react hot load进行快速开发。为此,我添加了模块并创建了配置文件。仅仅使用webpack dev服务器就可以了,所以我想webpack配置都是正确的。(如果这有帮助,我也可以发布配置) 现在我想使用grunt启动webpack开发服务器。我创建了这个webpack.jsgrunt配置文件,并将webpack dev server:start添加到default任务中 const path =

我目前正在从事一个sails react项目。我希望使用
webpack dev server
react hot load
进行快速开发。为此,我添加了模块并创建了配置文件。仅仅使用webpack dev服务器就可以了,所以我想webpack配置都是正确的。(如果这有帮助,我也可以发布配置)

现在我想使用
grunt
启动
webpack开发服务器。我创建了这个
webpack.js
grunt配置文件,并将
webpack dev server:start
添加到
default
任务中

const path = require('path');

module.exports = function(grunt) {
  //const webpack = require('webpack');
  const webpackConfig = require('../../webpack.config');
  const webpackConfigProduction = require('../../webpack.production.config');

  grunt.config.set('webpack', {
    options: webpackConfigProduction,
    build: {}
  });

  grunt.config.set('webpack-dev-server', {
    options: {
      webpack: webpackConfig,
      host: 'localhost',
      port: 8080,
      historyApiFallback: true,
      hot: true,
      contentBase: path.join(__dirname, "../../app"),
      publicPath: '/assets/',
    },
    start: {}
  });

  grunt.loadNpmTasks('grunt-webpack');
};
grunt任务按预期启动Web包开发服务器

我注意到的第一个区别是dev server prints
项目的控制台输出运行在http://localhost/
而不是预期的
项目正在运行http://localhost:8080/
,因此可能端口未正确初始化

然后出现错误:在
http://localhost:8080/
加载正确的index.html,但出现错误

Uncaught SyntaxError:missing)在参数列表之后

由这一行代码引起:

if (module.hot) module.hot.accept('./components/App.jsx', () => {
    const NewApp = require('./components/App.jsx').default;
    render(NewApp);
});
因为webpack(仅使用grunt,仅从命令行启动webpack dev server)将其转换为:

if (true) module.hot.accept("./app/components/App.jsx""./app/components/App.jsx", 
function () {
  var NewApp = __webpack_require__("./app/components/App.jsx").default;
  render(NewApp);
});
我不知道为什么在使用grunt webpack时会重复“/app/components/app.jsx”