任何一門計算機語言都包含了豐富的第三方庫,npm就是JavaScript這門語言的第三方庫管理工具,本文詳細介紹了JavaScript的包管理工具,npm。vue
在計算機中安裝好Node.js以後,默認已經安裝好了npm包管理工具,咱們能夠輸入npm
命令進行測試:node
安裝npm包
安裝好npm包管理工具以後,咱們來介紹兩種安裝npm包的方式:全局安裝和局部安裝ios
全局安裝
若是你想將其做爲一個命令行工具,那麼你應該將其安裝到全局。這種安裝方式後能夠讓你在任何目錄下使用這個包,安裝全局包的方式以下:git
1 |
npm install -g vue |
全局方式安裝的npm包,全局可用。npm
本地安裝
1 |
npm install vue@2.5.17 |
本地方式安裝的npm包,只在當前目錄下可用,該方式安裝的包:json
1 |
- 會把包安裝到node_modules目錄中 |
本地安裝–save
1 |
npm install vue@2.5.17 --save |
本地–save方式安裝的npm包,只在當前目錄下可用,該方式安裝的包:axios
1 |
- 會把包安裝到node_modules目錄中 |
卸載全局包
1 |
npm uninstall <package> -g |
卸載本地
1 |
npm uninstall <package> -S, --save: Package will be removed from your dependencies. |
經過npm安裝JavaScript第三方庫時,訪問的是國外的站點,訪問速度會比較慢,此時咱們能夠使用國內的鏡像站,cnpm,詳細的使用方式請參考http://npm.taobao.org/
。babel
使用方式以下:antd
1 |
cnpm install vue |
以上就是npm包的安裝和卸載介紹。app
可是,當咱們須要維護多個獨立的項目環境時, 好比項目一須要Vue2.5.10支持,而項目二須要最新的Vue2.5.17,咱們應該分別爲項目一和項目二建立獨立的、與外界隔離的第三方庫環境。而不是在當前目錄下使用本地或者全局方式安裝npm包。
咱們應該建立一個文件夾,並將該文件夾初始化爲npm包環境,使用方式以下:
1 |
mkdir myproject |
使用npm init
初始化項目環境的時候,會出現以下提示:
1 |
Press ^C at any time to quit. |
按需填入上述信息,最後輸入yes
,項目環境初始化完畢。若是使用默認信息,能夠直接使用npm init -y
進行初始化。
上面的信息依次是:
1 |
name 項目名稱 |
查看特定package的信息
1 |
npm ls <package> |
更新package
1 |
npm update <package> |
搜索package
1 |
npm search <package> |
package.json詳解
隨着項目的不斷豐富,package.json文件也會跟隨着不斷的複雜,接下來,介紹幾個在上述沒有的條目:
1 |
"private": true, |
-
private
可選字段,布爾值。若是 private 爲 true,npm 會拒絕發佈。這能夠防止私有 repositories 不當心被髮布出去; -
dependencies
與devDependencies
在開發階段,咱們須要對開發的模塊進行單元測試,這時在開發環境 devDependencies 下就要安裝單元測試模塊 Mocha。
在生產環境 dependencies,用戶直接使用項目,此時項目的開發已所有完成。這時就不須要單元測試模塊了,再加上只會影響性能。
- dependencies 指定了項目生產環境時所依賴的模塊,
- devDependencies 制定了項目開發環境時所依賴的模塊。
-
scripts
該字段指定了運行腳本命令的npm命令行縮寫,好比start指定了運行npm run start時,所要執行的命令。下面的設置指定了npm run dev、npm run bulid、npm run unit、npm run test、npm run lint時,所要執行的命令;
1
2
3
4
5
6
7"scripts": {
"dev": "node build/dev-server.js",
"build": "node build/build.js",
"unit": "cross-env BABEL_ENV=test karma start test/unit/karma.conf.js --single-run",
"test": "npm run unit",
"lint": "eslint --ext .js,.vue src test/unit/specs"
} -
engines
字段指定依賴的node版本 -
publishConfig
當咱們開發完本身的項目想要將它發佈到 Npm 倉庫就須要使用這個屬性。默認狀況下咱們是往 Npm 公共倉庫中發佈包,默認地址是:
https://www.npmjs.com/
,此時在package.json
文件中能夠不加這個屬性。可是若是公司內部搭建了 Npm 私有倉庫,此時發佈包就不是往
https://www.npmjs.com/
這個地址上發佈了,而是公司內部提供的地址,如:http://gongsineibu/nexus/repository/npm-hosted/
。此時配置以下:1
2
3"publishConfig": {
"registry": "http://gongsineibu/nexus/repository/npm-hosted/"
}publicConfig
字段決定了咱們的包發佈到哪裏。
關於npm的介紹到這裏就結束了。