1. npm 簡介
- <strong>npm</strong>:一個包管理工具
- <strong>包/模塊</strong>:為了JavaScript編寫人員<strong>共享</strong>他們?yōu)榻鉀Q一些特殊問題所編寫的代碼和給其他編寫人員在他們自己的項目中<strong>重用</strong>這些代碼以清,并且<strong>實時更新</strong>贺奠。這些可重用的代碼叫做 <strong>包 或者 模塊</strong>
(It's a way to reuse code from other developers, and also a way to share your code with them, and it makes it easy to manage the different versions of code.) - 一個包是一個目錄,里面有一個或者多個文件
- 一個典型的應(yīng)用例如一個網(wǎng)站,依賴于成千上萬的包。這些包通常比較小。一般的思想是用比較好的解決方法解決了一個小問題,用這些小問題組成一個更大的問題的解決方案。
2. npm 的安裝和更新
- npm 是隨同 NodeJS 一起安裝的包管理工具愈涩,npm 更新很快
- 檢查 npm 的版本:
npm -v
- 更新 npm 的最新版本:
npm install npm@latest -g
3. package.json 文件
- 存有關(guān)于包的元數(shù)據(jù)(元數(shù)據(jù)指用來描述一個文件的特征的系統(tǒng)數(shù)據(jù),諸如訪問權(quán)限加矛、文件擁有者以及文件數(shù)據(jù)塊的分布信息等等)钠署;
- 一個 package.json 文件列舉了你的項目所依賴的包和版本。
- 創(chuàng)建一個package.json 文件:
npm init
輸入相應(yīng)的信息或者一路回車過去(使用默認(rèn)的或者為空)
npm init --yes //跳過詢問荒椭,獲得一個默認(rèn)的package.json
package.json 文件的內(nèi)容
name:一般是當(dāng)前目錄的名字
version:總是1.0.0
description:包的描述
main:指向你程序的主要項目谐鼎,經(jīng)常是index.js 程序的入口
keywords:空
author:創(chuàng)建package.json 文件時,你在命令行輸入的名字(包的作者名)
contributors - 包的其他貢獻者姓名
"dependencies": these packages are required by your application in production
"devDependencies": these packages are only needed for development and testing
手動編輯 package.json 文件:可以在
dependencies
或者devDependencies
兩個對象中寫入你的項目所依賴的包以及版本號
eg:
{
"name": "my_package",
"version": "1.0.0",
"dependencies": {
"my_dep": "^1.0.0"
},
"devDependencies" : {
"my_test_framework": "^3.1.0"
}
}
用命令行的方式寫入:
npm install <package_name> --save
//add an entry to your package.json 's dependencies
npm install <package_name> --save-dev
//add an entry to your package.json 's devDependencies
4. 包的安裝
- 本地安裝(locally)
npm install <package_name>
如果原來不存在,會在你的當(dāng)前目錄下生成 node_modules 文件夾并且在這個文件夾中下載該包狸棍。
查看 node_modules 目錄中的包身害,確認(rèn)是否成功安裝包:
ls node_modules
- 全局安裝(globally)
npm install <package_name> -g
當(dāng)運行目錄下沒有 package.json 時,運行 npm install 會安裝最新版本草戈。存在 package.json 時則會安裝 package.json 中記錄的版本及 package_name塌鸯。
package 會被安裝在當(dāng)前目錄的 node_modules 文件夾時,當(dāng)前目錄沒有 node_modules 文件夾時會自動創(chuàng)建唐片。若 node_modules 存在已有模塊則不會重復(fù)安裝丙猬,即使不是最新版本。
5. 使用安裝的包
例如安裝了包 “l(fā)odash”:
npm install lodash
新建一個index.js 文件
var lodash = require('lodash'); //引入本地安裝的包
var output = lodash.without([1, 2, 3], 1);
console.log(output);
命令行運行: node index.js
輸出[2,3]
如果沒有成功安裝這個包费韭,輸出:
module.js:340
throw err;
^
Error: Cannot find module 'lodash'
6. 更新包
- 更新本地包:
npm update //在和你的package.json文件同目錄的地方運行此命令行
- 更新全局包:
npm update -g <package_name> //更新特定的全局包
npm update -g //更新全部全局包
7. 卸載包
- 卸載本地包:
npm uninstall <package_name>
- 卸載本地包以及從package.json文件的dependencies或者devDependencies中刪除:
npm uninstall --save <package_name>
npm uninstall --save-dev <package_name>
- 卸載全局包:
npm uninstall -g <package_name>