2017-06-12 95 views
0

我的环境:的VUE-CLI的WebPack开发服务器:错误产卵EACCES

  • Centos7通过VirtualBox的(安装在Windows7中)
  • 节点版本:6.10.3
  • NPM版本:3.10.10
  • 我后面的企业代理

我初始化了一个新的项目“vuetest”与VUE-CLI,现在我想要运行的WebPack服务器。 我用下面的命令:

npm run dev 

此命令等同于 “的WebPack-DEV-服务器--open --hot”,这里是我的 “的package.json” 文件检查:

{ 
    "name": "vuetest", 
    "description": "A Vue.js project", 
    "version": "1.0.0", 
    "author": "", 
    "private": true, 
    "scripts": { 
    "dev": "cross-env NODE_ENV=development webpack-dev-server --open --hot", 
    "build": "cross-env NODE_ENV=production webpack --progress --hide-modules" 
    }, 
    "dependencies": { 
    "vue": "^2.3.3" 
    }, 
    "devDependencies": { 
    "babel-core": "^6.0.0", 
    "babel-loader": "^6.0.0", 
    "babel-preset-env": "^1.5.1", 
    "cross-env": "^3.2.4", 
    "css-loader": "^0.25.0", 
    "file-loader": "^0.9.0", 
    "vue-loader": "^12.1.0", 
    "vue-template-compiler": "^2.3.3", 
    "webpack": "^2.6.1", 
    "webpack-dev-server": "^2.4.5" 
    } 
} 

但我得到以下错误:

> [email protected] dev /var/www/html/vuetest 
> cross-env NODE_ENV=development webpack-dev-server --open --hot 

Project is running at http://localhost:8080/ 
webpack output is served from /dist/ 
404s will fallback to /index.html 
internal/child_process.js:319 
    throw errnoException(err, 'spawn'); 
    ^

Error: spawn EACCES 
    at exports._errnoException (util.js:1018:11) 
    at ChildProcess.spawn (internal/child_process.js:319:11) 
    at Object.exports.spawn (child_process.js:378:9) 
    at module.exports (/var/www/html/vuetest/node_modules/opn/index.js:75:24) 
    at reportReadiness (/var/www/html/vuetest/node_modules/webpack-dev-server/bin/webpack-dev-server.js:424:3) 
    at Server.<anonymous> (/var/www/html/vuetest/node_modules/webpack-dev-server/bin/webpack-dev-server.js:404:4) 
    at Server.g (events.js:292:16) 
    at emitNone (events.js:86:13) 
    at Server.emit (events.js:185:7) 
    at emitListeningNT (net.js:1284:10) 

npm ERR! Linux 3.10.0-514.el7.x86_64 
npm ERR! argv "/usr/bin/node" "/usr/bin/npm" "run" "dev" 
npm ERR! node v6.10.3 
npm ERR! npm v3.10.10 
npm ERR! code ELIFECYCLE 
npm ERR! [email protected].0.0 dev: `cross-env NODE_ENV=development webpack-dev-server --open --hot` 
npm ERR! Exit status 1 
npm ERR! 
npm ERR! Failed at the [email protected] dev script 'cross-env NODE_ENV=development webpack-dev-server --open --hot'. 
npm ERR! Make sure you have the latest version of node.js and npm installed. 
npm ERR! If you do, this is most likely a problem with the vuetest package, 
npm ERR! not with npm itself. 
npm ERR! Tell the author that this fails on your system: 
npm ERR!  cross-env NODE_ENV=development webpack-dev-server --open --hot 
npm ERR! You can get information on how to open an issue for this project with: 
npm ERR!  npm bugs vuetest 
npm ERR! Or if that isn't available, you can get their info via: 
npm ERR!  npm owner ls vuetest 
npm ERR! There is likely additional logging output above. 

npm ERR! Please include the following file with any support request: 
npm ERR!  /var/www/html/vuetest/npm-debug.log 

这里的 “NPM-的debug.log” 文件的内容:

0 info it worked if it ends with ok 
1 verbose cli [ '/usr/bin/node', '/usr/bin/npm', 'run', 'dev' ] 
2 info using [email protected] 
3 info using [email protected] 
4 verbose run-script [ 'predev', 'dev', 'postdev' ] 
5 info lifecycle [email protected]~predev: [email protected] 
6 silly lifecycle [email protected]~predev: no script for predev, continuing 
7 info lifecycle [email protected]~dev: [email protected] 
8 verbose lifecycle [email protected]~dev: unsafe-perm in lifecycle true 
9 verbose lifecycle [email protected]~dev: PATH: /usr/lib/node_modules/npm/bin/node-gyp-bin:/var/www/html/vuetest/node_modules/.bin:/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/bdupre/.local/bin:/home/bdupre/bin 
10 verbose lifecycle [email protected]~dev: CWD: /var/www/html/vuetest 
11 silly lifecycle [email protected]~dev: Args: [ '-c', 
11 silly lifecycle 'cross-env NODE_ENV=development webpack-dev-server --open --hot' ] 
12 silly lifecycle [email protected]~dev: Returned: code: 1 signal: null 
13 info lifecycle [email protected]~dev: Failed to exec dev script 
14 verbose stack Error: [email protected] dev: `cross-env NODE_ENV=development webpack-dev-server --open --hot` 
14 verbose stack Exit status 1 
14 verbose stack  at EventEmitter.<anonymous> (/usr/lib/node_modules/npm/lib/utils/lifecycle.js:255:16) 
14 verbose stack  at emitTwo (events.js:106:13) 
14 verbose stack  at EventEmitter.emit (events.js:191:7) 
14 verbose stack  at ChildProcess.<anonymous> (/usr/lib/node_modules/npm/lib/utils/spawn.js:40:14) 
14 verbose stack  at emitTwo (events.js:106:13) 
14 verbose stack  at ChildProcess.emit (events.js:191:7) 
14 verbose stack  at maybeClose (internal/child_process.js:886:16) 
14 verbose stack  at Process.ChildProcess._handle.onexit (internal/child_process.js:226:5) 
15 verbose pkgid [email protected] 
16 verbose cwd /var/www/html/vuetest 
17 error Linux 3.10.0-514.el7.x86_64 
18 error argv "/usr/bin/node" "/usr/bin/npm" "run" "dev" 
19 error node v6.10.3 
20 error npm v3.10.10 
21 error code ELIFECYCLE 
22 error [email protected] dev: `cross-env NODE_ENV=development webpack-dev-server --open --hot` 
22 error Exit status 1 
23 error Failed at the [email protected] dev script 'cross-env NODE_ENV=development webpack-dev-server --open --hot'. 
23 error Make sure you have the latest version of node.js and npm installed. 
23 error If you do, this is most likely a problem with the vuetest package, 
23 error not with npm itself. 
23 error Tell the author that this fails on your system: 
23 error  cross-env NODE_ENV=development webpack-dev-server --open --hot 
23 error You can get information on how to open an issue for this project with: 
23 error  npm bugs vuetest 
23 error Or if that isn't available, you can get their info via: 
23 error  npm owner ls vuetest 
23 error There is likely additional logging output above. 
24 verbose exit [ 1, true ] 

有谁知道如何修复它?

回答

1

我找到了解决方案。 在 “的package.json” 文件,我代替:

"dev": "cross-env NODE_ENV=development webpack-dev-server --open --hot" 

通过这样的:

"dev": "cross-env NODE_ENV=development webpack-dev-server --port 8080 --hot --host 0.0.0.0" 

而现在一切正常,我的服务器,正常启动。

0

您可以检查您的dev服务器的端口8080是否已被使用?只需在浏览器中输入http://localhost:8080或更改webpack.config.js中的端口并重试即可。我有类似的问题,也许就是这样。

1

node_modules/OPN/XDG-开放是不可执行的,如果你是在Linux上,这是在OPN/index.js线75

什么失败或添加此

console.log(cmd, args, cpOpts); 

线75之前在node_modules/opn/index.js中查看究竟哪个命令失败

1

正如Emil所说,这是opn模块的问题,因为xdg-open不可执行。 我使用vue-cli生成的项目中存在相同的问题,该项目使用opn 5.1.0。

只要做chmod +x node_modules/opn/xdg-open就可以解决这个问题。但是每次更新节点模块时,此更改都将丢失。

我最终在build/dev-server中评论了对opn的调用。JS:

if (autoOpenBrowser && process.env.NODE_ENV !== 'testing') {

//opn(uri) 

}

开放手动我对http://localhost:8080

0

在跟踪日志检查浏览器中,这个问题发生到模块OPN,正好index.js的75线

Error: spawn EACCES at exports._errnoException (util.js:1018:11) at ChildProcess.spawn (internal/child_process.js:319:11) at Object.exports.spawn (child_process.js:378:9) at module.exports (/var/www/html/vuetest/node_modules/opn/index.js:75:24)

查看该文件,我们看到:

50   } else { 
51     if (opts.app) { 
52       cmd = opts.app; 
53     } else { 
54       cmd = path.join(__dirname, 'xdg-open'); 
55     } 
56 
57     if (appArgs.length > 0) { 
58       args = args.concat(appArgs); 
59     } 
60 
61     if (!opts.wait) { 
62       // xdg-open will block the process unless 
63       // stdio is ignored even if it's unref'd 
64       cpOpts.stdio = 'ignore'; 
65     } 
66   } 
67 
68   args.push(target); 
69 
70   if (process.platform === 'darwin' && appArgs.length > 0) { 
71     args.push('--args'); 
72     args = args.concat(appArgs); 
73   } 
74 
75   var cp = childProcess.spawn(cmd, args, cpOpts); 

可能节点试图运行xdg-open这是一个bash脚本,因此它需要执行权限。

尝试:

chmod a+x xdg-open

,或者,如果你在你的项目的根目录:

chmod a+x node_modules/opn/xdg-open

PS:通常所有这些文件都具有正确的权限。在一种非常危险的情况下,您总是可以删除目录node_modules并再次运行npm install

相关问题