基於從https://github.com/creationix/nvm/pull/97評論:
當-g的 包在正確的目錄結束使用全局開關與故宮安裝包(即 .nvm/$ VERSION/lib中/ node_modules) ,但節點無法要求它 ,因爲它以某種方式不搜索它的前綴。
因此,使用npm install -g xxxxx
將把模塊在NVM正確的位置,但如果你試圖節點其中require
一個找不到模塊。我仍然在玩這個,如果我找到解決方案,將會更新。
更新
哪裏NPM把node_modules? (請參見https://docs.npmjs.com/files/folders)
- 本地安裝(默認):將東西放入當前軟件包根目錄的./node_modules中。
- 全局安裝(使用-g):將內容放入/ usr/local或安裝節點的任何位置。
- 本地安裝,如果你要去
require()
它。
- 如果要在命令行上運行它,請全局安裝它。
- 如果您需要兩者,請在兩處安裝,或使用
npm link
。
所以我所做的是在我的項目root dir中運行npm init
(參見http://npmjs.org/doc/init.html),它生成了package.json。現在,當我運行npm install xxxxx
時,它會在我的項目文件夾(我添加到我的.gitignore中)中創建一個node_modules目錄。這適用於我在我的代碼中需要的模塊。
對於像CoffeeScript這樣的命令,我使用npm install -g coffee-script
進行安裝,將其放入正確的目錄(.nvm/$ VERSION/lib/node_modules)中。雖然我不能要求這些模塊(npm鏈接應該解決這個問題),但我可以運行這些命令 - 即coffee
。
最後一個很好的答案,一直在我的頭上敲了一下。 – 2015-01-26 19:51:50