2017-06-12 121 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