NodeJS - npm

npm

  • node package manager(node包管理工具)迹炼。

  • npmNode.js 標(biāo)準(zhǔn)的軟件包管理器际乘。

  • 它起初是作為下載和管理 Node.js 包依賴的方式誓斥,但其現(xiàn)在也已成為前端 JavaScript 中使用的工具忿危。

  • 除了簡單的下載外镊靴,npm 還可以管理版本控制矩父,因此可以指定軟件包的任何特定版本锉桑,或者要求版本高于或低于所需版本。

  • yarnnpm 的一個替代選擇窍株。

安裝軟件包

  • 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:使用可用的最新版本甜无。

參考資料

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市哥遮,隨后出現(xiàn)的幾起案子岂丘,更是在濱河造成了極大的恐慌,老刑警劉巖眠饮,帶你破解...
    沈念sama閱讀 218,386評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件奥帘,死亡現(xiàn)場離奇詭異,居然都是意外死亡仪召,警方通過查閱死者的電腦和手機(jī)寨蹋,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,142評論 3 394
  • 文/潘曉璐 我一進(jìn)店門松蒜,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人钥庇,你說我怎么就攤上這事牍鞠。” “怎么了评姨?”我有些...
    開封第一講書人閱讀 164,704評論 0 353
  • 文/不壞的土叔 我叫張陵难述,是天一觀的道長。 經(jīng)常有香客問我吐句,道長胁后,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,702評論 1 294
  • 正文 為了忘掉前任嗦枢,我火速辦了婚禮攀芯,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘文虏。我一直安慰自己侣诺,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,716評論 6 392
  • 文/花漫 我一把揭開白布氧秘。 她就那樣靜靜地躺著年鸳,像睡著了一般。 火紅的嫁衣襯著肌膚如雪丸相。 梳的紋絲不亂的頭發(fā)上搔确,一...
    開封第一講書人閱讀 51,573評論 1 305
  • 那天,我揣著相機(jī)與錄音灭忠,去河邊找鬼膳算。 笑死,一個胖子當(dāng)著我的面吹牛弛作,可吹牛的內(nèi)容都是我干的涕蜂。 我是一名探鬼主播,決...
    沈念sama閱讀 40,314評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼缆蝉,長吁一口氣:“原來是場噩夢啊……” “哼宇葱!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起刊头,我...
    開封第一講書人閱讀 39,230評論 0 276
  • 序言:老撾萬榮一對情侶失蹤黍瞧,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后原杂,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體印颤,經(jīng)...
    沈念sama閱讀 45,680評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,873評論 3 336
  • 正文 我和宋清朗相戀三年穿肄,在試婚紗的時候發(fā)現(xiàn)自己被綠了年局。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片际看。...
    茶點(diǎn)故事閱讀 39,991評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖矢否,靈堂內(nèi)的尸體忽然破棺而出仲闽,到底是詐尸還是另有隱情,我是刑警寧澤僵朗,帶...
    沈念sama閱讀 35,706評論 5 346
  • 正文 年R本政府宣布赖欣,位于F島的核電站,受9級特大地震影響验庙,放射性物質(zhì)發(fā)生泄漏顶吮。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,329評論 3 330
  • 文/蒙蒙 一粪薛、第九天 我趴在偏房一處隱蔽的房頂上張望悴了。 院中可真熱鬧,春花似錦违寿、人聲如沸湃交。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,910評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽巡揍。三九已至,卻和暖如春菌瘪,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背阱当。 一陣腳步聲響...
    開封第一講書人閱讀 33,038評論 1 270
  • 我被黑心中介騙來泰國打工俏扩, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人弊添。 一個月前我還...
    沈念sama閱讀 48,158評論 3 370
  • 正文 我出身青樓录淡,卻偏偏與公主長得像,于是被迫代替她去往敵國和親油坝。 傳聞我的和親對象是個殘疾皇子嫉戚,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,941評論 2 355