n模块打破了npm

Kos*_*ika 14 javascript versioning node.js npm

在我从一个node.js版本切换到另一个n模块 - https://github.com/visionmedia/n/后,我的npm被打破了......

MacBook-Pro-Dmitri:~ dmitri$ npm --version

module.js:340
    throw err;
          ^
Error: Cannot find module 'npmlog'
    at Function.Module._resolveFilename (module.js:338:15)
    at Function.Module._load (module.js:280:25)
    at Module.require (module.js:362:17)
    at require (module.js:378:17)
    at /usr/local/bin/npm:19:11
    at Object.<anonymous> (/usr/local/bin/npm:87:3)
    at Module._compile (module.js:449:26)
    at Object.Module._extensions..js (module.js:467:10)
    at Module.load (module.js:356:32)
    at Function.Module._load (module.js:312:12)
Run Code Online (Sandbox Code Playgroud)

然后我再次安装npm,因为它在这里建议 - https://github.com/visionmedia/n/issues/101

curl https://npmjs.org/install.sh | sh
Run Code Online (Sandbox Code Playgroud)

npm开始工作..

但后来我为节点版本做了另一个开关:

n 0.8.22
Run Code Online (Sandbox Code Playgroud)

和npm现在再次被打破同样的错误.

这非常烦人..我需要在每个版本切换后手动安装npm吗?!

nil*_*ing 0

如果你像我一样经常更换版本,那么现在 Node 和 npm 应该捆绑在一起。您可以尝试使用NVM安装节点

https://github.com/creationix/nvm

这将帮助您区分不同节点版本中的包。只需在切换后执行 npm install 即可。

PS:目前的node版本已经相当稳定了。您可以只使用当前版本而不是 0.8.22