npm用法及離線安裝方法

基本的用法

查看某個模塊的所有信息,或者能夠查看單個信息 php

npm info name
npm info name version
npm info name homepage

install支持多種手段,包名,git路徑,包括本地路徑也能夠 java

sudo npm install -global [package name]
npm install git://github.com/package/path.git npm install git://github.com/package/path.git#0.1.0 npm install package_name@version npm install path/to/somedir //本地路徑

前提是本地路徑裏面包含一個完整的包,或者文件裏面有合格的package.json文件便可 node

查看裝好了哪些包 mysql

npm list npm -global list

配置文件基本用法

配置就是修改npmrc文件了。用命令行一樣也是修改此文件。 linux

npmrc存在三個位置,修改用戶目錄下的文件就更合適了。 git

~/.npmrc             (用戶主目錄,win系統在C:\Users\$用戶名\.npmrc) github

修改文件就不用說了,命令配置方法 sql

npm config set key=value npm config set proxy=http://127.0.0.1:8087

具體的用法和具體key value能夠經過打開說明文檔查看 npm

npm help npm

配置項能夠經過如下命令查看已經配置過的項 json

npm config list npm config list -l

配置代理,全局目錄,源

下面正式介紹對付國內網絡的方法了

首先幾個重要的配置項一一介紹

prefix   -- 全局安裝的路徑,也就是npm install -g 安裝的模塊在哪一個位置。這個看我的喜愛。我喜愛將他設置到安裝路徑下面。

proxy -- 代理(http的代理是用這個),代理連外網的朋友這個就須要配置了。

https_proxy -- https代理

registry -- 相似linux的軟件源,這個必定要修改的

npm config set prefix "c:\nodejs" npm config set proxy=http://127.0.0.1:8087 npm config set https_proxy=http://127.0.0.1:8087 npm config set registry=http://registry.npmjs.org

registry=http://registry.npmjs.org 這句很重要,注意默認的源是https://registry.npmjs.org 是https的,反正我連默認的源是歷來沒成功過一次。 
上例我把他修正爲不加密http的就基本能正常了。

網絡不行能夠考慮一些國內的源試試,例如

npm config set registry "http://r.cnpmjs.org/"

離線安裝

有許多環境下即使配置了代理,修改了源仍是出現網絡問題。常見的提示是shasum check failed。固然這不必定就是網絡不行,但大部分狀況下是網絡鏈接不通暢致使的。

這種狀況下能夠手工下載並安裝,其實也很簡單。

首先找到想辦法把你須要的包下載下來,這個能夠多種辦法了。或者從其餘機器拷過來。

例如先npm info mysql 查看mysql這個包的信息,包信息裏面會有軟件主頁或者代碼倉庫地址。一半在github上。(install由於要下載可能會失敗,可是info指令信息少一般能夠成功)。

例如node-mysql的地址在 https://github.com/felixge/node-mysql

下載來以後解壓到工程的node_modules目錄下就是安裝好了,就這麼簡單。

Project

---package.json

---index.js

---node_modules      // 解壓到此目錄就好了(每一個包文件夾下面有package.json,index.js文件的。)

注意:你下載下來的源碼包可能和模塊名字不同。要將更名成模塊名再拷貝進node_modules 中去。例如將node-mysql文件夾更名成mysql。

包之間的依賴關係離線安裝問題

上面方法安裝的包不會包含依賴的包,不過依賴包一樣用上面離線一個個安裝的辦法也能夠。

例如mysql包就依賴bignumber.js , readable-stream , require-all 三個包。npm默認狀況下安裝的依賴包會是一層一層往下的。例如安裝好mysql工程結構會是這樣的

Project

---package.json

---index.js

---node_modules

---mysql

---node_modules

---bignumber.js

---readable-stream

---require-all

你一樣只須要相同的操做將依賴的包放到相應的位置即可。這樣包管理的結構雖然複雜可是依賴關係很清晰。可是這個規定不必定非要這樣,你也能夠將依賴包放到第一層的node_modules文件夾下。nodejs搜索模塊路徑會一層一層往上搜索。

相關文章
相關標籤/搜索