2014-03-05 64 views
0

即使我試圖建立在連接到互聯網通過代理實現我們的實驗室服務器中的一個節點JS基礎的應用。該框運行Ubuntu 13.10。我配置了網絡代理,並且能夠通過Firefox連接到互聯網。對於apt-get,我在/etc/apt/apt.conf中配置了代理。這也是有效的。NPM不安裝軟件包代理設置

安裝節點JS,當我嘗試做npm install -g <package>它給我的錯誤後。我也爲npm配置了代理。我的.npmrc看起來像這樣:(我的代理不需要用戶名/密碼)。

registry = http://registry.npmjs.org/ 
proxy = http://<domain>:8080/ 
https-proxy = http://<domain>:8080 

我試過在論壇中找到的各種選項,但似乎沒有爲我工作。 (比如設置strict-sslfalse,使用--without-ssl --insecure選項等)

這是我目前得到的錯誤:

npm http GET http://registry.npmjs.org/express 
npm http GET http://registry.npmjs.org/express 
npm http GET http://registry.npmjs.org/express 
npm ERR! Error: connect ECONNREFUSED 
npm ERR!  at errnoException (net.js:904:11) 
npm ERR!  at Object.afterConnect [as oncomplete] (net.js:895:19) 
npm ERR! { [Error: connect ECONNREFUSED] 
npm ERR! code: 'ECONNREFUSED', 
npm ERR! errno: 'ECONNREFUSED', 
npm ERR! syscall: 'connect' } 
npm ERR! 
npm ERR! If you are behind a proxy, please make sure that the 
npm ERR! 'proxy' config is set properly. See: 'npm help config' 

npm ERR! System Linux 3.11.0-12-generic 
npm ERR! command "/home/<user>/apps/node-v0.10.26-linux-x86/bin/node" "/home/<user>/apps/node-v0.10.26-linux-x86/bin/npm" "install" "-g" "express" 
npm ERR! cwd /home/<user> 
npm ERR! node -v v0.10.26 
npm ERR! npm -v 1.4.3 
npm ERR! syscall connect 
npm ERR! code ECONNREFUSED 
npm ERR! errno ECONNREFUSED 
npm ERR! stack Error: connect ECONNREFUSED 
npm ERR! stack  at errnoException (net.js:904:11) 
npm ERR! stack  at Object.afterConnect [as oncomplete] (net.js:895:19) 
npm ERR! 
npm ERR! Additional logging details can be found in: 
npm ERR!  /home/<user>/npm-debug.log 
npm ERR! not ok code 0 

任何想法,這是怎麼回事錯在這裏?我堅持這個混賬東西一天;-(

感謝

+0

.npmrc文件的路徑是什麼? 「P:\> npm config獲取https-proxy」和「npm config獲取代理」輸出是什麼? –

+0

.npmrc位於我的主目錄('/ home/')。當我通過'npm config get'獲取屬性時,我得到正確的值。現在不得不求助於離線安裝來解決這個問題。仍然不知道爲什麼它不起作用。 – rkrishnan

回答

1

我一直沒能得到這個問題的解決方法,但發現周圍的工作 - !我捆起我所需要的包在我的筆記本電腦上,然後在實驗室中使用離線安裝。下面是如何做到這一點:

例如,mongodb節點模塊,我已經安裝在我的筆記本電腦上,我開發的。 package.json文件MongoDB的模塊,依賴關係都列出了相應的版本號,我的是這樣:

"dependencies": { "bson": "0.2.5", "kerberos": "0.0.3" },

更新package.json文件以包含"bundledDependencies"。 (該位置應該不重要,只是它應該與JSON樹中的兄弟"dependencies"處於同一級別)。這是你需要添加什麼:

"bundledDependencies": [ "bson", "kerberos" ],

現在,當你是你包的目錄(其中package.json文件存在)中,運行命令npm pack。這將爲你創建一個tgz文件。在我的情況下,它創建了mongodb-1.3.23.tgz。只需將此文件複製到您想要安裝的文件夾並運行npm install ./mongodb-1.3.23.tgz即可。這應該讓你通過。由於所有依賴關係現在都捆綁在這個.tgz文件中,因此npm不會嘗試連接到互聯網來安裝它們中的任何一個。

不過,我還是想知道什麼是我的基於互聯網的安裝走錯了。這仍然是一個謎!