fluxible run dev发射两次,我应该如何使用webpack和nodemon配置dev启动脚本?

时间:2016-07-19 18:22:37

标签: webpack fluxible

我回到了一个古老的流动项目,我开始了一段时间,当我使用npm run dev时,它似乎开始两次,并且正在抛出一个错误。它曾经工作 - 导致此错误的配置是什么?标准的可焊接配置应该在端口3000上运行两个Web服务器,在3001上运行一个吗?

> node webpack-dev-server.js & PORT=3001 nodemon start.js -e js,jsx

[nodemon] 1.8.1
[nodemon] to restart at any time, enter `rs`
[nodemon] watching: *.*
[nodemon] starting `node start.js`
Webpack Dev Server listening on port 3000
[nodemon] 1.8.1
[nodemon] to restart at any time, enter `rs`
[nodemon] watching: *.*
[nodemon] starting `node start.js`
using redis session
Application listening on port 3001
events.js:141
      throw er; // Unhandled 'error' event
      ^

Error: listen EADDRINUSE :::3001

我注意到在webpack-dev-server.js中它也调用了start.js.

var webpack = require('webpack');
var WebpackDevServer = require('webpack-dev-server');
var config = require('./webpack.config');
var shell = require('shelljs');

new WebpackDevServer(webpack(config), {
    publicPath: config.output.publicPath,
    hot: true,
    historyApiFallback: true,
    //quiet: true,
    proxy: {
        '*': { target: 'http://localhost:3001' }
    }
}).listen(3000, function () {
    shell.env.PORT = shell.env.PORT || 3001;
    shell.exec('"./node_modules/.bin/nodemon" start.js -e js,jsx', function () {});
    console.log('Webpack Dev Server listening on port 3000');
});

也许shell.exec调用start.js是多余的?

1 个答案:

答案 0 :(得分:0)

我认为你的直觉是正确的。尝试运行此命令:

node webpack-dev-server.js

发生的事情是,节点程序(webpack-dev-server.js)在端口3000上启动webpack-dev-server,然后在端口3001上启动nodemon服务。您在终端中运行的命令正在使用一个&符,所以它也并行启动第三个服务器。该服务器也在端口3001上运行。

我怀疑引发的错误是由并行进程已经使用的端口引起的。