npm
node package manager(node包管理工具)迹炼。
npm
是Node.js
標(biāo)準(zhǔn)的軟件包管理器际乘。它起初是作為下載和管理 Node.js 包依賴的方式誓斥,但其現(xiàn)在也已成為前端 JavaScript 中使用的工具忿危。
除了簡單的下載外镊靴,
npm
還可以管理版本控制矩父,因此可以指定軟件包的任何特定版本锉桑,或者要求版本高于或低于所需版本。yarn
是npm
的一個替代選擇窍株。
安裝軟件包
-
npm
可以管理項(xiàng)目依賴的下載民轴。
一、安裝所有依賴
如果項(xiàng)目具有 package.json
文件球订,則運(yùn)行:
npm install
它會在 node_modules
文件夾(如果尚不存在則會創(chuàng)建)中安裝項(xiàng)目所需的所有東西后裸。
二、安裝單個軟件包
1. 全局安裝:
// npm 不會將軟件包安裝到本地文件夾下冒滩,而是使用全局的位置微驶。
npm install -g <package-name>
獲取全局的位置:
npm root -g
2. 本地安裝:
安裝到當(dāng)前文件樹中的 node_modules
子文件夾下:
// npm 還會在當(dāng)前文件夾中存在的 package.json 文件的 dependencies 屬性中添加條目
npm install <package-name>
-
--save :安裝并添加條目到
package.json
文件的dependencies
對象中。
npm install <package-name> --save
// 或
npm install <package-name> -S
-
--save-dev :安裝并添加條目到
package.json
文件的devDependencies
對象中旦部。
npm install <package-name> --save-dev
// 或
npm install <package-name> -D
三祈搜、更新軟件包
1. 更新全部軟件包:
npm
會檢查所有軟件包是否有滿足版本限制的更新版本:
npm update
2. 更新指定單個軟件包:
npm update <package-name>
四、卸載軟件包
1. 全局卸載
如果該軟件包是全局安裝的士八,則需要添加 -g
或 --global
標(biāo)志:
npm uninstall -g <package-name>
2. 本地卸載
卸載之前在本地安裝(在 node_modules
文件夾使用 npm install <package-name>
)的軟件包容燕。
npm uninstall <package-name>
如果使用 -S 或 --save 標(biāo)志,則此操作還會移除 package.json 文件中的引用婚度。
npm uninstall -S <package-name>
如果程序包是開發(fā)依賴項(xiàng)(列出在 package.json 文件的 devDependencies 中)蘸秘,則必須使用 -D 或 --save-dev 標(biāo)志從文件中移除
npm uninstall -D <package-name>
語義版本控制
一、概念
所有的版本都有 3 個數(shù)字:x.y.z蝗茁。
- 第一個數(shù)字是主版本醋虏。
- 第二個數(shù)字是次版本。
- 第三個數(shù)字是補(bǔ)丁版本哮翘。
當(dāng)發(fā)布新的版本時颈嚼,不僅僅是隨心所欲地增加數(shù)字,還要遵循以下規(guī)則:
- 當(dāng)進(jìn)行不兼容的 API 更改時饭寺,則升級主版本阻课。
- 當(dāng)以向后兼容的方式添加功能時叫挟,則升級次版本。
- 當(dāng)進(jìn)行向后兼容的缺陷修復(fù)時限煞,則升級補(bǔ)丁版本抹恳。
該約定在所有編程語言中均被采用,每個 npm 軟件包都必須遵守該約定署驻,這一點(diǎn)非常重要奋献,因?yàn)檎麄€系統(tǒng)都依賴于此。
為什么這么重要旺上?
因?yàn)?npm 設(shè)置了一些規(guī)則瓶蚂,可用于在 package.json 文件中選擇要將軟件包更新到的版本(當(dāng)運(yùn)行 npm update 時)。
二抚官、規(guī)則
1.規(guī)則使用了這些符號:
- ^:當(dāng)運(yùn)行 npm update 時扬跋,會更新到補(bǔ)丁版本和次版本。
- ~:當(dāng)運(yùn)行 npm update 時凌节,會更新到補(bǔ)丁版本。
- >:接受高于指定版本的任何版本洒试。
- >=:接受等于或高于指定版本的任何版本倍奢。
- <:接受低于指定版本的任何版本。
- <=:接受等于或低于指定版本的任何版本垒棋。
- =: 接受確切的版本卒煞。
- -: 接受一定范圍的版本。例如:2.1.0 - 2.6.2叼架。
- ||:組合集合畔裕。例如 < 2.1 || > 2.6。
可以合并其中的一些符號乖订,例如 1.0.0 || >=1.1.0 <1.2.0扮饶,即使用 1.0.0 或從 1.1.0 開始但低于 1.2.0 的版本。
2.其他規(guī)則:
- 無符號:僅接受指定的特定版本(例如 1.2.1)乍构。
- latest:使用可用的最新版本甜无。