npm和cnpm區(qū)別

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字段簡介

字段相當多,但最重要的的是下面幾個

  1. name: package的名字(由于他會成為url的一部分,所以 non-url-safe 的字母不會通過,也不允許出現(xiàn)"."、"_"),最好先在http://registry.npmjs.org/上搜下你取的名字是否已經(jīng)存在
  2. version: package的版本,當package發(fā)生變化時,version也應該跟著一起變化,同時,你聲明的版本需要通過semver的校驗(semver可自行谷歌)
  3. dependencies: package的應用依賴模塊,即別人要使用這個package,至少需要安裝哪些東東。應用依賴模塊會安裝到當前模塊的node_modules目錄下。
  4. 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"

版本書寫要求

  1. 版本可以v開頭,比如 v1.0.1(v只是可選)
  2. 1.0.1-7,這里的7是所謂的“構(gòu)建版本號”,不理是神馬,反正版本大于1.0.1
  3. 1.0.1beta,或者1.0.1-beta,如果1.0.1后面不是 “連字符加數(shù)字” 這種形式,那么它是pre release 版本,即版本小于 1.0.1
  4. 根據(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=referralhttp://blog.csdn.net/shelly1072/article/details/51524029

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關(guān)閱讀更多精彩內(nèi)容

  • npm(node package manager)是nodejs的包管理器。npm安裝插件:命令提示符執(zhí)行npm ...
    daisx閱讀 2,391評論 0 0
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,663評論 19 139
  • npm是什么 NPM的全稱是Node Package Manager,是隨同NodeJS一起安裝的包管理和分發(fā)工具...
    build1024閱讀 8,147評論 0 9
  • 大家好,我是IT修真院深圳分院第3期的學員,一枚正直純潔善良的前端程序員,今天給大家分享一下,修真院官網(wǎng)前端工程師...
    大大頭大閱讀 3,061評論 0 1
  • 穿過黑夜的電閃雷鳴 暴雨淹沒你毫無節(jié)奏的呻吟 沒人知道你為何傷心 你也不愿告訴任何人 你做夢也沒想到這一切 居然來...
    禪靜一生閱讀 294評論 4 7

友情鏈接更多精彩內(nèi)容