Reactjs 使用grunt运行Web包开发服务器时出错
我目前正在从事一个sails react项目。我希望使用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 =
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”