直到最近一切正常。现在,突然之间,
webpack-dev-server
抛出一个错误。
我的 webpack.config.js 看起来像这样:
var path = require("path");
module.exports = {
entry: {
app: ["./src/js/app.js"]
},
output: {
path: path.resolve(__dirname, "./dist/js/"),
filename: "bundle.js"
},
devServer: {
port: 8080,
stats: 'errors-only',
open: true
}
};
我在 package.json 中的脚本是这样的:
"scripts": {
"dev": "babel src -d dist && webpack-dev-server --inline --hot",
"build": "gulp uglify"
}
webpack-dev-server
模块在执行npm run dev
时抛出的错误是:
Project is running at http://localhost:8080/
webpack output is served from /
internal/child_process.js:325
throw errnoException(err, 'spawn');
^
Error: spawn EACCES
然后它立即存在(终端已准备好接受新命令)。
我已经在谷歌上搜索过
webpack-dev-server spawn EACCES error
但没有正确的结果。我什至尝试使用 sudo
命令运行脚本,但它仍然不起作用。
我似乎找不到我做错了什么。
我不能称赞这个答案(来源:here),但由于它适用于 OP,我发布以供参考/未来的研究人员使用。
解决方案是指定端口为
0.0.0.0
:
webpack-dev-server --port 8080 --hot --host 0.0.0.0"
检查 node_modules/opn/xdg-open 是否可执行
我的问题是,当我尝试构建生产环境时,node_modules/webpack/bin/webpack.js 没有执行权。添加它们修复了它。即使是全新的 npm install 也无法修复它。