基于来自https://github.com/creationix/nvm/pull/97的评论:
使用全局开关-g使用npm安装软件包时,该软件包最终位于正确的目录(即.nvm / $ VERSION / lib /
node_modules)中,但是node无法要求它,因为它不以某种方式搜索其前缀。
因此,使用
npm install -gxxxxx会将模块放置在NVM的正确位置,但是如果尝试使用
require其中一个,则节点找不到该模块。我仍在处理这个问题,如果找到解决方案,它将进行更新。
更新资料
NPM将node_modules放在哪里?(请参阅https://docs.npmjs.com/files/folders)
- 本地安装(默认):将内容放入当前软件包根目录的./node_modules中。
- 全局安装(带-g):将内容放入/ usr / local或安装节点的任何位置。
- 如果要去本地安装
require()
它。 - 如果要在命令行上运行它,请全局安装它。
- 如果两者都需要,则将其安装在两个地方,或使用
npm link
。
因此,我的操作在生成根文件包的项目根目录中运行
npminit(请参阅http://npmjs.org/doc/init.html)。现在,当我运行
npminstall xxxxx它时,在我的项目文件夹(将其添加到.gitignore中)中创建一个node_modules目录。这适用于我代码中所需的模块。
对于诸如Coffeescript之类的命令,我
npm install -g coffee-script将其安装在正确的目录(.nvm / $
VERSION / lib / node_modules)中。虽然我不需要这些模块(npm链接应该可以解决此问题),但我可以运行命令-即
coffee。



