哎呀!我想我破坏了我的工作环境(nvm、npm 和 node w/angular)。 :(

Oops! I think I broke my work environment (nvm, npm, and node w/ angular). :(

我已经很久没有使用我的个人电脑编程了。我通常使用工作电脑。然而,昨天我决定开始一个新的宠物项目。好吧,我去用VirtualBox在我的Vagrant中搭建了网站,现在nvm、npm、node都乱了。

每次我尝试 运行 npm install 在我的项目中设置 node_module 时,我都会收到此错误:

/home/vagrant/.nvm/v0.10.32/lib/node_modules/npm/lib/utils/unsupported.js:27
        console.error(`a bug known to break npm. Please update to at least ${r
                      ^
SyntaxError: Unexpected token ILLEGAL
    at Module._compile (module.js:439:25)
    at Object.Module._extensions..js (module.js:474:10)
    at Module.load (module.js:356:32)
    at Function.Module._load (module.js:312:12)
    at Module.require (module.js:364:17)
    at require (module.js:380:17)
    at /home/vagrant/.nvm/v0.10.32/lib/node_modules/npm/bin/npm-cli.js:19:21
    at Object.<anonymous> (/home/vagrant/.nvm/v0.10.32/lib/node_modules/npm/bin/npm-cli.js:92:3)
    at Module._compile (module.js:456:26)
    at Object.Module._extensions..js (module.js:474:10)

无论我尝试在 npm 中做什么(升级、安装、删除、卸载等),它都会抛出此错误。

有人可以帮我吗?

Node v0.10.32 不支持您的 npm 版本。事实上,Node v0.10 本身也不被支持,项目正在主动放弃支持它。现在大多数依赖项都需要 node v4+。

您安装的 npm 版本将在 VM 中可用:

cat /home/vagrant/.nvm/v0.10.32/lib/node_modules/npm/package.json

您将需要通过 /home/vagrant/.nvm/v0.10.32/lib/node_modules/npm 中的文件手动提取 v2 or possibly even a v1 npm 版本之一。

再次删除和设置 nvm v0.10.32 环境也应该 npm 恢复到工作版本。

我猜你的 Vagrant build 做了类似 npm install -g npm 的事情,它在某个阶段可以工作,但现在安装了最新的不兼容版本。

使用npm install -g npm@2坚持v2.x版本