我觉得我需要能够将全局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
好的......好吧......妈的。
所以无论如何,此时我并没有寻找如何修复的说明。我可能会受到冲击。这里的主要问题是我应该做些什么来管理这些npm包,它们是命令行工具,哪些编译组件看起来与特定版本绑定?我了解当我安装nvm并将其合并到我的系统中时,我的shell可以切换其$PATH
,这样当我调用node
和npm
时,它们将使用节点版本运行我选了。
但似乎全局的npm包被放到/usr/local/bin/
的某个地方而且他们只是卡在那里而无法跟随我对nvm
所做的事情 - 虽然它可能不会对于理论上表现良好的节点包&#34;,在实践中(至少对于像node-inspector
这样的东西)它确实看起来好像在没有执行时可能会兴高采烈地爆炸安装它的节点。
与此同时,基本上我必须npm remove -g <package> && npm install -g <package>
以任何方式使用nvm
在新节点版本下运行该软件包时,我发现这种方式奇怪。
这似乎不对。
是不是错了?
而且,这样做的必然结果是,每当我调用nvm权限来测试某个节点的不同版本的node.js应用程序时,我几乎应该通过将它克隆到一个全新的目录并重新开始,因为否则我可能会发现我需要rm -rf node_modules && npm install
才能让它完全发挥作用...
答案 0 :(得分:6)
来自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
答案 1 :(得分:0)
I may have misunderstood your situation, but it seems like you need to install all global packages you use separately for each node version you are using. The reason it works like that is that you may need different versions of packages for different node versions. So whenever you use nvm use ...
it changes paths to global packages to the packages installed for the selected version of node.
Hope it helps.