npm安裝express的過程中,會安裝 multiparty-2.2.0.tg 就是下面這一步: npm http 200 https://registry.npmjs.org/multiparty/-/multiparty-2.2.0.tg
然而,總是會卡在這一步,這個包一直無法下載下來,用瀏覽器直接下載這個地址的包也無法下載,速度非常慢,幾乎爲零。
有沒有什麼解決方法?或者能通過其它方法安裝express
找到node的安装目录node_modules/npm/npmrc随便什么编辑器打开在后面添加国内的npm镜像
registry = http://registry.cnpmjs.org
网上看说是publish的时候需要删除这段使用原来的站点
感謝提醒。
我發現用普通用戶安裝時候使用的源是 cnpmjs
但是使用root安裝的時候使用的源是 npmjs
但是由於安裝express需要-g參數只能使用root用戶權限
但是我的node安裝目錄下的node_modules/npm/中並沒有npmrc文件,同時普通用戶與root用戶的家目錄下均沒有.npmrc文件,我無法知道源究竟實在哪裏定義的,網上也未找到答案。同時自己添加.npmrc文件也沒能改變源
最後只能在root用戶下執行
npm config set registry http://registry.cnpmjs.org
使得root目錄下的安裝也使用 cnpmjs 的源
想多問一句,當安裝目錄下的npmrc文件與家目錄下的.npmrc文件均不存在時,npm的源是在哪裏決定的
@telnetning linux啊,我这边都一直在windows下的找的方法也是win下的,才接触不久 这个问题也是昨天遇到的 答案顺便就告知了,npm config的含义其实和修改npmrc是一样的吧 也许是win下才有的npmrc文件呢~
@fwjyttbtx linux下也是有的。npm help npmrc得到結果中有下面一段:
The three relevant files are:
· per-user config file (~/.npmrc)
· global config file ($PREFIX/npmrc)
· npm builtin config file (/path/to/npm/npmrc)
只是我這兒剛開始沒有這些npmrc文件,然後我在npm的實現代碼中有看到一些跟源有關的代碼:
telnetning@debian:/usr/local/lib/node_modules/npm/lib$ cat * | grep npmjs
url = "https://npmjs.org/package/" + d.name
// http://registry.npmjs.org/foo/version -> cache/http!/...
return json.homepage ? json.homepage : "https://npmjs.org/package/" + json.name
我估計這些文件都不存在的時候,應該是利用npm本身的實現預定義的源吧。
這個問題就討論到這兒吧,畢竟目前對於我們不是那麼重要,好好寫node吧。:)再次謝謝你的回答。
npm insatll express -g --registry=http://r.cnpmjs.org
或者一劳永逸
npm install -g cnpm --registry=http://r.cnpmjs.org
# 之后就可以通过 cnpm 安装了
cnpm install -g express
或者推荐使用 nrm 可以非常方便的在多个源之间切换, 包括npm, cnpm, 欧洲, 澳大利亚, strongloop