npm(node package manager)是node的包管理工具,關(guān)于npm的詳細內(nèi)容可以看一下NPM介紹,本文主要是對上一篇文章的補充和介紹CNPM的介紹。
上一篇關(guān)于NPM介紹的文章中發(fā)現(xiàn)最后少介紹了一個知識點,所以先在這里介紹一下。
關(guān)于package.json
這貨在官網(wǎng)似乎沒有詳細的描述,其實就是包的描述信息啦。假設當我們下載了node應用,這個node應用依賴于A、B、C三個包,如果沒有package.json,我們需要人肉安裝這個三個包(如果對版本有特定要求就更悲劇了):
$ npm install A
$ npm install B
$ npm install C
有了package.json,一行命令安裝所有依賴。
$ npm install
package.json字段簡介
字段相當多,但最重要的的是下面幾個
- name: package的名字(由于他會成為url的一部分,所以 non-url-safe 的字母不會通過,也不允許出現(xiàn)"."、"_"),最好先在http://registry.npmjs.org/上搜下你取的名字是否已經(jīng)存在
- version: package的版本,當package發(fā)生變化時,version也應該跟著一起變化,同時,你聲明的版本需要通過semver的校驗(semver可自行谷歌)
- dependencies: package的應用依賴模塊,即別人要使用這個package,至少需要安裝哪些東東。應用依賴模塊會安裝到當前模塊的node_modules目錄下。
-
devDependencies: package的開發(fā)依賴模塊,即別人要在這個package上進行開發(fā)
其他:參見官網(wǎng)
package版本
在package.json里,你經(jīng)常會在包名后看到類似"~0.1.0"這樣的字符串,這就是包的版本啦。下面會列舉最常見的版本聲明形式,以及版本書寫的要求:
常見版本聲明形式
a、"~1.2.3" 是神馬意思呢,看下面領(lǐng)悟
"~1.2.3" = ">=1.2.3 <1.3.0"
"~1.2" = ">=1.2.0 <1.3.0"
"~1" = ">=1.0.0 <1.1.0"
b、"1.x.x"是什么意思呢,繼續(xù)自行領(lǐng)悟
"1.2.x" = ">=1.2.0 <1.3.0"
"1.x.x" = ">=1.0.0 <2.0.0"
"1.2" = "1.2.x"
"1.x" = "1.x.x"
"1" = "1.x.x"
版本書寫要求
- 版本可以v開頭,比如 v1.0.1(v只是可選)
- 1.0.1-7,這里的7是所謂的“構(gòu)建版本號”,不理是神馬,反正版本大于1.0.1
- 1.0.1beta,或者1.0.1-beta,如果1.0.1后面不是 “連字符加數(shù)字” 這種形式,那么它是pre release 版本,即版本小于 1.0.1
- 根據(jù)b、c,有:0.1.2-7 > 0.1.2-7-beta > 0.1.2-6 > 0.1.2 > 0.1.2beta
CNPM
是什么?
因為npm安裝插件是從國外服務器下載,受網(wǎng)絡影響大,可能出現(xiàn)異常,如果npm的服務器在中國就好了,所以我們樂于分享的淘寶團隊干了這事。
來自淘寶NPM鏡像官網(wǎng)的說明:
“這是一個完整 npmjs.org 鏡像,你可以用此代替官方版本(只讀),同步頻率目前為 10分鐘 一次以保證盡量與官方服務同步。”
怎么用?
只需要在你的git bash或者mac的終端中輸入一下命令即可:
$ npm install -g cnpm --registry=https://registry.npm.taobao.org
說明
cnpm支持npm除了publish之外的所有命令,所以說你可以放心的使用cnpm來代替npm使用,這樣可能使用包管理的時候更加的方便,因為服務器就在國內(nèi)。但是,有時候如果你的網(wǎng)絡情況比較渣的話,用啥都一樣。
本文借鑒自:http://www.cnblogs.com/chyingp/p/npm.html?utm_source=tuicool&utm_medium=referral和http://blog.csdn.net/shelly1072/article/details/51524029