如何使用NPM宿亡?CNPM又是什么?

今天給大家分享一下?如何使用NPM纳令?CNPM又是什么挽荠?

1.背景介紹

什么是npm?

NPM是隨同NodeJS一起安裝的包管理工具平绩,能解決NodeJS代碼部署上的很多問題圈匆,常見的使用場景有以下幾種:

允許用戶從NPM服務(wù)器下載別人編寫的第三方包到本地使用。

允許用戶從NPM服務(wù)器下載并安裝別人編寫的命令行程序到本地使用捏雌。

允許用戶將自己編寫的包或命令行程序上傳到NPM服務(wù)器供別人使用跃赚。

由于新版的nodejs已經(jīng)集成了npm,所以之前npm也一并安裝好了腹忽。同樣可以通過輸入?"npm -v"?來測試是否成功安裝来累。命令如下砚作,出現(xiàn)版本提示表示安裝成功:

npm的規(guī)則

允許用戶從NPM服務(wù)器下載別人編寫的第三方包到本地使用。

允許用戶從NPM服務(wù)器下載并安裝別人編寫的命令行程序到本地使用嘹锁。

允許用戶將自己編寫的包或命令行程序上傳到NPM服務(wù)器供別人使用葫录。

由于新版的nodejs已經(jīng)集成了npm,所以之前npm也一并安裝好了领猾。同樣可以通過輸入 "npm -v" 來測試是否成功安裝

什么是cnpm?

因為npm安裝插件是從國外服務(wù)器下載米同,受網(wǎng)絡(luò)影響大,可能出現(xiàn)異常摔竿,如果npm的服務(wù)器在中國就好了面粮,所以我們樂于分享的淘寶團隊干了這事。來自官網(wǎng):“這是一個完整 npmjs.org 鏡像继低,你可以用此代替官方版本(只讀)熬苍,同步頻率目前為 10分鐘 一次以保證盡量與官方服務(wù)同步≡蹋”

2.知識剖析

NPM常用指令

1柴底、npm install moduleNames:安裝Node模塊

安裝完畢后會產(chǎn)生一個node_modules目錄,其目錄下就是安裝的各個node模塊粱胜。

node的安裝分為全局模式和本地模式柄驻。

一般情況下會以本地模式運行,包會被安裝到和你的應(yīng)用程序代碼的本地node_modules目錄下焙压。

在全局模式下鸿脓,Node包會被安裝到Node的安裝目錄下的node_modules下。

全局安裝命令為$npm install -g moduleName涯曲。

獲知使用$npm set global=true來設(shè)定安裝模式野哭,$npm get global可以查看當(dāng)前使用的安裝模式。

示例:

npm install express

默認(rèn)會安裝express的最新版本幻件,也可以通過在后面加版本號的方式安裝指定版本虐拓,如npm install express@3.0.6

npm install name -g

將包安裝到全局環(huán)境中

但是代碼中,直接通過require()的方式是沒有辦法調(diào)用全局安裝的包的傲武。全局的安裝是供命令行使用的,就好像全局安裝了vmarket后城榛,就可以在命令行中直接運行vm命令

npm install name --save

安裝的同時揪利,將信息寫入package.json中項目路徑中如果有package.json文件時,直接使用npm install方法就可以根據(jù)dependencies配置安裝所有的依賴包狠持,這樣代碼提交到github時疟位,就不用提交node_modules這個文件夾了。

npm root:查看當(dāng)前包的安裝路徑

npm root -g:查看全局的包的安裝路徑

npm -v:查看npm安裝的版本

npm list --depth=0:查看所有高級的npm moudles

npm list --depth=0 -global:查看所有全局安裝的模塊

為什么要保存至PACKAGE.JSON喘垂?

因為node插件包相對來說非常龐大甜刻,所以不加入版本管理绍撞,將配置信息寫入package.json并將其加入版本管理,其他開發(fā)者對應(yīng)下載即可(命令提示符執(zhí)行npm install得院,則會根據(jù)package.json下載所有需要的包)傻铣。

使用npm卸載插件:npm uninstall < name > [-g] [--save-dev] PS:不要直接刪除本地插件包

使用npm更新插件:npm update < name > [-g] [--save-dev]?

更新全部插件:npm update [--save-dev]?

查看npm幫助:npm help?

查看當(dāng)前目錄已安裝插件:npm list?

PS:npm安裝插件過程:從http://registry.npmjs.org下載對應(yīng)的插件包(該網(wǎng)站服務(wù)器位于國外,所以經(jīng)常下載緩慢或出現(xiàn)異常)祥绞,解決辦法就是cnpm

CNPM介紹:

官方網(wǎng)址:http://npm.taobao.org

安裝:命令提示符執(zhí)行npm install cnpm -g --registry=https://registry.npm.taobao.org

注意:安裝完后最好查看其版本號cnpm -v或關(guān)閉命令提示符重新打開非洲,安裝完直接使用有可能會出現(xiàn)錯誤?

PS:cnpm跟npm用法完全一致,只是在執(zhí)行命令時將npm改為cnpm蜕径。

PACKAGE.JSON 屬性說明:

name - 包名两踏。

version - 包的版本號。

description - 包的描述兜喻。

homepage - 包的官網(wǎng) url 梦染。

author - 包的作者姓名。

contributors - 包的其他貢獻(xiàn)者姓名朴皆。

dependencies - 依賴包列表帕识。如果依賴包沒有安裝,npm 會自動將依賴包安裝在 node_module 目錄下车荔。

repository - 包代碼存放的地方的類型渡冻,可以是 git 或 svn,git 可在 Github 上忧便。

main - main 字段是一個模塊ID族吻,它是一個指向你程序的主要項目。就是說珠增,如果你包的名字叫 express超歌,然后用戶安裝它,然后require("express")蒂教。keywords - 關(guān)鍵字

3.常見問題

如何安裝npm?

4.解決方案

1.前往nodejs官網(wǎng)下載nodejs巍举,https://nodejs.org/en/ ,建議下載穩(wěn)定版的凝垛,下載后無腦安裝即可懊悯。安裝完畢之后,在cmd中輸入node -v查看是否已經(jīng)安裝成功,如果有版本號顯示梦皮,則代表安裝成功L糠帧!剑肯!

5.編碼實戰(zhàn)

6.擴展思考

cnpm有哪些問題捧毛?

1.cnpm 的倉庫只是 npm 倉庫的一個拷貝,它不承擔(dān) publish 工作,所以你用 cnpm publish 命令會執(zhí)行失敗的

2.不僅是 publish 會執(zhí)行失敗呀忧,其它的需要注冊用戶(npm adduser)师痕、或者修改 package 狀態(tài)等命令都無法用 cnpm

7.參考文獻(xiàn)

npm的一些常用命令

8.更多討論


Q1:bower和npm的異同點?

npm是node js的包管理器而账,用來下載安裝node js的第三方工具包胰坟,也可以用來發(fā)布你自己開發(fā)的工具包。bower是一個前端庫管理的工具福扬,管理一些js庫腕铸,比如說jQuery,bootstrap等

Q2:如何查看npm配置铛碑?

npm config list //查看基本配置?

npm config list -l //查看所有配置

npm本地安裝與全局安裝有什么區(qū)別狠裹?

npm install grunt // 本地安裝,則是將模塊下載到當(dāng)前命令行所在目錄汽烦。?

npm install -g grunt//全局安裝涛菠,模塊將被下載安裝到【全局目錄】中;

npm如何獲取全局安裝的默認(rèn)目錄撇吞?

npm config get prefix

npm如何設(shè)置全局安裝的默認(rèn)目錄俗冻?

npm config set prefix “directory”

Q3:全局安裝和本地安裝的區(qū)別排宰?

全局安裝方式是鍵入命令:npm install gulp -g 或 npm install gulp --global海渊,其中參數(shù)-g的含義是代表安裝到全局環(huán)境里面璃弄,包安裝在Node安裝目錄下的node_modules文件夾中筐钟,一般在 \Users\用戶名\AppData\Roaming\ 目錄下,可以使用npm root -g查看全局安裝目錄旦委。

全局安裝后可以供命令行(command line)使用析恋,用戶可以在命令行中直接運行該組件包支持的命令篷角,如下圖全局安裝gulp后的cmd文件

本地安裝方式是鍵入命令:npm install gulp 或 npm install gulp --save-dev等画机,其中參數(shù)--save-dev的含義是代表把你的安裝包信息寫入package.json文件的devDependencies字段中冶伞,包安裝在指定項目的node_modules文件夾下。

本地安裝后可以直接通過require()的方式引入項目中node_modules目錄下的模塊步氏,如下示例响禽,本地安裝后直接在gulpfile.js中require('gulp')。

Q4:為什么進(jìn)行了全局安裝還要進(jìn)行本地安裝

在js實例代碼中荚醒,默認(rèn)下node.js會在NODE_PATH和目前js所在項目下的node_modules文件夾下去尋找模塊芋类,因此,如果只是全局安裝界阁,不能直接通過require()的方式去引用模塊梗肝,需要手動解決包路徑的配置問題,當(dāng)然你也可以復(fù)制全局安裝的node_modules文件夾到項目下铺董,還有辦法可以選擇將環(huán)境變量的NODE_PATH設(shè)置為C:\Program Files\nodejs。

2.對于包的更新不好管理,可能你需要為每個包重新命名精续,如gulp@3.8.1坝锰、gulp@3.9.1...,為了區(qū)別不同項目使用指定的包重付,保證模塊之間的相互依賴顷级,區(qū)別每個項目正常運行。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末确垫,一起剝皮案震驚了整個濱河市弓颈,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌删掀,老刑警劉巖翔冀,帶你破解...
    沈念sama閱讀 216,372評論 6 498
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異披泪,居然都是意外死亡纤子,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,368評論 3 392
  • 文/潘曉璐 我一進(jìn)店門款票,熙熙樓的掌柜王于貴愁眉苦臉地迎上來控硼,“玉大人,你說我怎么就攤上這事艾少】ㄇ” “怎么了?”我有些...
    開封第一講書人閱讀 162,415評論 0 353
  • 文/不壞的土叔 我叫張陵缚够,是天一觀的道長幔妨。 經(jīng)常有香客問我,道長潮瓶,這世上最難降的妖魔是什么陶冷? 我笑而不...
    開封第一講書人閱讀 58,157評論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮毯辅,結(jié)果婚禮上埂伦,老公的妹妹穿的比我還像新娘。我一直安慰自己思恐,他們只是感情好沾谜,可當(dāng)我...
    茶點故事閱讀 67,171評論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著胀莹,像睡著了一般基跑。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上描焰,一...
    開封第一講書人閱讀 51,125評論 1 297
  • 那天媳否,我揣著相機與錄音栅螟,去河邊找鬼。 笑死篱竭,一個胖子當(dāng)著我的面吹牛力图,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播掺逼,決...
    沈念sama閱讀 40,028評論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼吃媒,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了吕喘?” 一聲冷哼從身側(cè)響起赘那,我...
    開封第一講書人閱讀 38,887評論 0 274
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎氯质,沒想到半個月后募舟,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,310評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡病梢,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,533評論 2 332
  • 正文 我和宋清朗相戀三年胃珍,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片蜓陌。...
    茶點故事閱讀 39,690評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡觅彰,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出钮热,到底是詐尸還是另有隱情填抬,我是刑警寧澤,帶...
    沈念sama閱讀 35,411評論 5 343
  • 正文 年R本政府宣布隧期,位于F島的核電站飒责,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏仆潮。R本人自食惡果不足惜宏蛉,卻給世界環(huán)境...
    茶點故事閱讀 41,004評論 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望性置。 院中可真熱鬧拾并,春花似錦、人聲如沸鹏浅。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,659評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽隐砸。三九已至之碗,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間季希,已是汗流浹背褪那。 一陣腳步聲響...
    開封第一講書人閱讀 32,812評論 1 268
  • 我被黑心中介騙來泰國打工幽纷, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人博敬。 一個月前我還...
    沈念sama閱讀 47,693評論 2 368
  • 正文 我出身青樓霹崎,卻偏偏與公主長得像,于是被迫代替她去往敵國和親冶忱。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,577評論 2 353

推薦閱讀更多精彩內(nèi)容