n模块打破了npm

时间:2013-05-29 08:34:05

标签: javascript node.js versioning 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)

然后我按照这里的建议再次安装npm - https://github.com/visionmedia/n/issues/101

curl https://npmjs.org/install.sh | sh

npm开始工作..

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

n 0.8.22

和npm现在再次被打破并出现相同的错误。

非常讨厌..我是否需要在每次版本切换后手动安装npm?!

5 个答案:

答案 0 :(得分:1)

不同版本是否有不同的全局包存储库?

在切换版本后,可能需要全局重新安装该程序包sudo npm install -g或程序包管理缓存清除sudo npm cache clean

答案 1 :(得分:0)

如果你像我这样频繁的版本转换器,那么Node和npm应该捆绑在一起。您可以尝试使用NVM安装节点

https://github.com/creationix/nvm

这有助于您区分不同节点版本的软件包。只需在切换后进行npm安装。

PS:目前的节点版本非常稳定。您可以使用当前版本而不是0.8.22

答案 2 :(得分:0)

您可以尝试手动安装 npmlog npm install -g npmlog

答案 3 :(得分:0)

我遇到了同样的问题,无法找到解决方案。

似乎n维护得不如nvm,所以我完全删除了these steps之后的节点并使用nvm重新安装了它。

(节点现在包括npm)

答案 4 :(得分:0)

我在Windows上遇到同样的问题。我卸载了节点,从其安装目录中删除了所有内容并重新安装。重新启动命令行后,我再次使用npm。