2010-09-15 80 views
11

以root用戶身份設置npm是直接的。除了你必須以root身份運行npm命令(不推薦)。所以我想我會嘗試將其設置爲非root用戶。如何設置無root權限的npm(節點包管理器)?

據NPM文件,而無需root訪問非root用戶可以通過設置NPM:

  1. 創建.npmrc文件,rootbinroot,並且manroot指向用戶擁有的文件夾。
  2. 然後運行安裝腳本。

好的。安裝很好。

但節點無法看到npm提供的軟件包。

那麼如何讓節點知道npm提供的軟件包呢? (當我以前以root身份安裝npm時,我不必做任何事情)。 我可以在節點內設置require.paths,或者設置NODE_PATH環境變量,但是要什麼?

謝謝。

+0

現在沒有npm與節點?我從來沒有必要以root身份運行npm commans,除非我使用-g ... – tjameson 2012-11-17 00:44:46

回答

5

通過一點點的探索,看來你可以:

  1. 設置你的NODE_PATH到任何NPM的根目錄,或
  2. 而在節點,調用require.paths.push('path_to_npm_root')
+0

如果您想從repl中調試它,請參閱http://github.com/ry/node/issues/封閉#問題/ 303 – keturn 2010-09-27 18:06:13

4

這個工作對me:

  1. Make a ~/.node個文件夾

    mkdir ~/.node 
    
  2. 編輯~/.npmrc並添加行

    prefix = ~/.node 
    
  3. 編輯您的~/.profile~/.bash_profile並添加這些行

    PATH="$HOME/.node/bin:$PATH" 
    NODE_PATH="$HOME/.node/lib/node_modules:$NODE_PATH" 
    

現在我可以做的事情一樣npm -g install http-server它會插入高至~/.node沒有根。有了這個,當我輸入http-server時,它就會運行。