哎呀!我想我打破了我的工作环境(nvm,npm和节点w / angular)。 :(

时间:2017-10-25 00:44:27

标签: node.js npm vagrant nvm

自从我使用个人电脑进行编程以来已经有很长一段时间了。我通常使用工作电脑。然而,昨天我决定开始一个新的宠物项目。好吧,我使用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尝试做什么(升级,安装,删除,卸载等),它都会抛出此错误。

有人可以帮助我吗?

1 个答案:

答案 0 :(得分:1)

Node v0.10.32不支持您拥有的npm版本。事实上,Node v0.10本身也不受支持,项目正在积极地支持它。如今,大多数依赖项都需要节点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或甚至v1 npm版本之一。

再次删除和设置nvm v0.10.32环境也应该将npm带回工作版本。

我猜你的Vagrant版本会像npm install -g npm那样在某个阶段起作用,但现在会安装最新的,不兼容的版本。

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