我意識到,當我做了一個node.js模塊的全局安裝(帶-g標誌)節點不能使用該模塊,除非我編寫了整個路徑。node.js模塊路徑
我的意思是,這並不工作,如果模塊已在全球安裝:
cheerio = require('cheerio'),
我必須寫:
cheerio = require('/usr/lib/node_modules/cheerio'),
我怎麼能告訴節點,它已經在正確的路徑中尋找模塊?
謝謝。
我意識到,當我做了一個node.js模塊的全局安裝(帶-g標誌)節點不能使用該模塊,除非我編寫了整個路徑。node.js模塊路徑
我的意思是,這並不工作,如果模塊已在全球安裝:
cheerio = require('cheerio'),
我必須寫:
cheerio = require('/usr/lib/node_modules/cheerio'),
我怎麼能告訴節點,它已經在正確的路徑中尋找模塊?
謝謝。
在一般情況下,我會建議讓故宮給你的路徑,並設置如上所述:
$ echo 'export NODE_PATH="'$(npm root -g)'"' >> ~/.bash_profile && . ~/.bash_profile
我猜如果你在'npmrc'配置文件中有'loglevel = info'(或者其他任何詳細信息),這將不起作用,所以要注意那個。將'$(npm root -g)'更改爲'$(npm root -g 2>/dev/null)'可能會更好,但這仍然不是通用的,因爲只有某些shell遵循STDERR重定向的語法。 – BotNet
'-bash:/Users/abc/.nvm/nvm.shexport:沒有這樣的文件或目錄' –
不要這個命令它會殺死你的NVM! –
您可以添加以下到〜/ .bash_profile:
export NODE_PATH=/usr/lib/node_modules:$NODE_PATH
請參閱http://nodejs.org/api/modules.html#modules_loading_from_the_global_folders –
適用人羣與ZSH安裝:
echo 'export NODE_PATH="'$(npm root -g)'"' >> ~/.zshrc && . ~/.zshrc
對於那些在Windows PLA TForm的系統變量添加到您的PATH:
C:\Users\<username>\AppData\Roaming\npm
PS:我們大多數人(或某些)項目文件夾中安裝模塊通過將模塊作爲軟件包的依賴在Windows 8.1
您必須在Users \和\ AppData之間包含「UserName」。這個配置應該包含在你的usser系統變量中。然後你需要關閉會話並重新啓動以查看控制檯中的更改 – edrian
在我的情況下,運行Windows 8.1時,它是'npm-cache'而不是'npm'。 –
@edrian在原始答案中實際上有一個佔位符,但是由於沒有將其標記爲代碼,「標記」被刪除。現在已修復 –
節點,測試以.json。所以在部署期間,您可以上傳源代碼並在服務器中爲模塊執行npm install或部署整個項目文件夾。 好處是不會有依賴關係來照顧不同的項目。我將集中lib的PHP Java而不是節點。 – wayne