npm错误:在特定机器上构建时生成EACCES

时间:2017-03-16 22:41:31

标签: node.js npm

在两台机器上使用相同的源代码和配置运行npm run dev时,一台机器会出现以下错误:

> node build/dev-server.js

internal/child_process.js:302
    throw errnoException(err, 'spawn');
    ^

Error: spawn EACCES
    at exports._errnoException (util.js:896:11)
    at ChildProcess.spawn (internal/child_process.js:302:11)
    at Object.exports.spawn (child_process.js:367:9)
    at module.exports (/path-to/node_modules/opn/index.js:75:24)
    at Server.<anonymous> (/path-to/build/dev-server.js:81:5)
    at Server.g (events.js:286:16)
    at emitNone (events.js:86:13)
    at Server.emit (events.js:185:7)
    at emitListeningNT (net.js:1272:10)
    at _combinedTickCallback (internal/process/next_tick.js:71:11)
    at process._tickCallback (internal/process/next_tick.js:98:9)
    at Function.Module.runMain (module.js:577:11)
    at startup (node.js:159:18)
    at node.js:444:3

我有权运行npm和node,我使用的是node v6.0.0,npm v3.8.6(在运行install v5.00和3.3.6的机器上)

尝试运行单元测试时,我也遇到了类似的错误(npm run unit)

Error: spawn karma ENOENT

构建脚本运行正常。这是我的package.json的相关部分:

"scripts": {
    "dev": "node build/dev-server.js",
    "build": "node build/build.js",
    "unit": "cross-env BABEL_ENV=test karma start test/unit/karma.conf.js --single-run",

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

我的工作是卸载节点:

 sudo apt-get remove --purge node 

并使用nvm安装节点(请参阅https://github.com/creationix/nvm获取最新信息)

curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.1/install.sh | bash

然后在我的另一台机器上安装相同版本的节点:

 nvm install 5.0 

关于NVM的好处是我可以安装其他节点版本,然后使用此命令使用特定版本:

nvm use 5.0