[英]Node Version Manager (NVM) npm installing modules to common folder
我已經使用這篇文章中的說明為 node.js 安裝了 NVM:
http://www.backdrifter.com/2011/02/18/using-nvm-and-npm-to-manage-node-js/
當我在節點版本之間切換然后使用 npm 安裝模塊時,所有模塊都放置在同一個“node_modules”文件夾(~/node_modules/)中,而不是特定於該版本節點的“node_modules”目錄中?
關於如何解決這個問題的任何想法?
基於來自https://github.com/creationix/nvm/pull/97的評論:
當使用全局開關 -g 使用 npm 安裝包時,包最終位於正確的目錄中(即 .nvm/$VERSION/lib/node_modules),但是 node 無法要求它,因為它不知何故沒有搜索它的前綴。
因此,使用npm install -g xxxxx
會將模塊放在 NVM 的正確位置,但如果您嘗試require
其中之一,則節點找不到該模塊。 我仍在玩這個,如果我找到解決方案,我會更新。
更新
NPM 把 node_modules 放在哪里? (見https://docs.npmjs.com/files/folders )
require()
它,請在本地安裝它。npm link
。 所以我所做的是在生成 package.json 的項目根目錄中運行npm init
(參見http://npmjs.org/doc/init.html )。 現在,當我運行npm install xxxxx
它會在我的項目文件夾中創建一個 node_modules 目錄(我將其添加到我的 .gitignore 中)。 這適用於我在代碼中需要的模塊。
對於諸如 CoffeeScript 之類的命令,我使用npm install -g coffee-script
,它將它放在正確的目錄 (.nvm/$VERSION/lib/node_modules) 中。 雖然我不需要這些模塊(npm link 應該可以解決這個問題),但我可以運行命令 - 即coffee
。
我剛剛在全球范圍內安裝了 express (-g) 並且在 require("express") 時遇到了問題。 就像 Jesse Vogt 說的那樣,我剛剛重新安裝了 express,但這次沒有 -g 就像這樣:“sudo npm install express”,現在運行良好!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.