2012-08-07 146 views
5

我有一個節點應用程序,其中一個package.json文件聲明我的依賴關係。節點v0.8.5 REPL:當需要安裝npm模塊時找不到模塊

我已經運行npm install將這些代碼安裝到本地的node_modules文件夾,當我運行我的應用程序時,一切正常。

問題是,當我嘗試發射了節點REPL秒殺了一些新的功能:

$ node   
> require('hubot'); 
Error: Cannot find module 'hubot' 

在REPL,它似乎並不知道往裏node_modules。這是預期的行爲,還是輪轂怪異?

+1

,您在正確的目錄中運行你的REPL?您需要從項目的根目錄('node_modules'的父文件夾)運行它。 – rdrey 2012-08-07 18:06:38

+0

是的。與package.json&node_modules相同的目錄。 – adamesque 2012-08-07 19:09:59

+0

@adamesque你有沒有想過爲什麼會發生這種情況?我在Node 5上看到了同樣的情況,我確信這只是我做的一個簡單的錯誤。 – Joe 2015-12-17 06:12:28

回答

6

您可以設置環境變量NODE_DEBUG看到由節點嘗試的路徑:

export NODE_DEBUG=module 
> require('toto') 
Module._load REQUEST toto parent: repl 
looking for "toto" in ["/Users/laurent/repl/node_modules","/Users/laurent/node_modules","/Users/node_modules","/node_modules","/lusr/local/bin/node","/Users/laurent/.node_modules","/Users/laurent/.node_libraries","/usr/local/lib/node"]