使用nvm时pipe理全局的npm包

我觉得我需要能够将全局npm包分别安装到NVM目录中。

$ nvm install v0.11 ######################################################################## 100.0% Now using node v0.11.16 $ node-inspector Node Inspector v0.9.2 Visit http://127.0.0.1:8080/debug?port=5858 to start debugging. 

我的节点检查员停止工作!

 $ npm update -g <bunch of updating, succeeds> 

也许这将有助于…不! 仍然破碎。 叹。 也许… node-inspector不适用于v0.11.16(在nvm上运行)。 也许。 谁知道。 那么,中止的时候了。

 $ nvm use system Now using system version of node: v0.10.32. $ node-inspector --version dyld: lazy symbol binding failed: Symbol not found: _node_module_register Referenced from: /usr/local/lib/node_modules/node-inspector/node_modules/ws/build/Release/bufferutil.node Expected in: dynamic lookup dyld: Symbol not found: _node_module_register Referenced from: /usr/local/lib/node_modules/node-inspector/node_modules/ws/build/Release/bufferutil.node Expected in: dynamic lookup [1] 93845 trace trap node-inspector --version 

好吧….好吧。

无论如何,在这一点上,我不在寻找如何解决的指示。 我可能会被洗脑。 这里的主要问题是我应该怎么做来pipe理这些npm包,它们是命令行工具,并且编译了与特定版本绑定的组件? 我明白,当我安装nvm并将其合并到我的系统中时,我的shell可以切换$PATH所以当我调用nodenpm ,它们将使用我select的节点版本运行。

但是好像全局的npm包被放到/usr/local/bin/某个地方,他们只是停留在那里,不能遵循我对nvm所做的nvm – 虽然可能不是“理论上行为良好的节点包“,在实践中(至less对于像node-inspector这样的东西来说),看起来好像在不使用安装它的节点执行时会高兴地爆炸。

与此同时,我必须基本上npm remove -g <package> && npm install -g <package>我发现任何包的行为奇怪的方式,每一次我想运行该包在新的节点版本下使用nvm

这似乎是错误的。

这是错的吗?

而且,一个必然结果是,每次我调用nvm的权力来testing一个给定的node.js应用程序与不同的节点版本,我应该做的很多,克隆它在一个全新的目录,并开始新鲜,因为否则我可能会发现,我将需要rm -rf node_modules && npm install只是为了使其function… …

从nvm帮助信息:

 nvm install [-s] <version> Download and install a <version>, [-s] from source. Uses .nvmrc if available --reinstall-packages-from=<version> When installing, reinstall packages installed in <node|iojs|node version number> --lts When installing, only select from LTS (long-term support) versions --lts=<LTS name> When installing, only select from versions for a specific LTS line 

相关标志是--reinstall-packages-from=<version> 。 只需重新运行你的命令 (例子):

 $ nvm install v6.9.2 --reinstall-packages-from=v4.4.5 

我可能误解了你的情况,但似乎你需要安装你使用的每个节点版本分别使用的所有全局包。 这样工作的原因是,您可能需要不同版本的软件包用于不同的节点版本。 因此,无论何时使用nvm use ...它都会将全局包的path更改为为所选版本的节点安装的包。

希望能帮助到你。