npm學(xué)習(xí)筆記

1. npm 簡介

  • <strong>npm</strong>:一個包管理工具
  • <strong>包/模塊</strong>:為了JavaScript編寫人員<strong>共享</strong>他們?yōu)榻鉀Q一些特殊問題所編寫的代碼和給其他編寫人員在他們自己的項目中<strong>重用</strong>這些代碼以清,并且<strong>實時更新</strong>贺奠。這些可重用的代碼叫做 <strong>包 或者 模塊</strong>
    (It's a way to reuse code from other developers, and also a way to share your code with them, and it makes it easy to manage the different versions of code.)
  • 一個包是一個目錄,里面有一個或者多個文件
  • 一個典型的應(yīng)用例如一個網(wǎng)站,依賴于成千上萬的包。這些包通常比較小。一般的思想是用比較好的解決方法解決了一個小問題,用這些小問題組成一個更大的問題的解決方案。

2. npm 的安裝和更新

  • npm 是隨同 NodeJS 一起安裝的包管理工具愈涩,npm 更新很快
  • 檢查 npm 的版本:
npm -v
  • 更新 npm 的最新版本:
npm install npm@latest -g

3. package.json 文件

  • 存有關(guān)于包的元數(shù)據(jù)(元數(shù)據(jù)指用來描述一個文件的特征的系統(tǒng)數(shù)據(jù),諸如訪問權(quán)限加矛、文件擁有者以及文件數(shù)據(jù)塊的分布信息等等)钠署;
  • 一個 package.json 文件列舉了你的項目所依賴的包和版本。
  • 創(chuàng)建一個package.json 文件:
npm init

輸入相應(yīng)的信息或者一路回車過去(使用默認(rèn)的或者為空)

npm init --yes  //跳過詢問荒椭,獲得一個默認(rèn)的package.json
  • package.json 文件的內(nèi)容

  • name:一般是當(dāng)前目錄的名字

  • version:總是1.0.0

  • description:包的描述

  • main:指向你程序的主要項目谐鼎,經(jīng)常是index.js 程序的入口

  • keywords:空

  • author:創(chuàng)建package.json 文件時,你在命令行輸入的名字(包的作者名)

  • contributors - 包的其他貢獻者姓名

  • "dependencies": these packages are required by your application in production

  • "devDependencies": these packages are only needed for development and testing

  • 手動編輯 package.json 文件:可以在 dependencies 或者 devDependencies 兩個對象中寫入你的項目所依賴的包以及版本號

eg:
{
  "name": "my_package",
  "version": "1.0.0",
  "dependencies": {
    "my_dep": "^1.0.0"
  },
  "devDependencies" : {
    "my_test_framework": "^3.1.0"
  }
}

用命令行的方式寫入:

npm install <package_name> --save  
//add an entry to your package.json 's dependencies
npm  install <package_name> --save-dev 
//add an entry to your package.json 's devDependencies

4. 包的安裝

  • 本地安裝(locally)
npm install <package_name> 

如果原來不存在,會在你的當(dāng)前目錄下生成 node_modules 文件夾并且在這個文件夾中下載該包狸棍。
查看 node_modules 目錄中的包身害,確認(rèn)是否成功安裝包:

 ls node_modules 
  • 全局安裝(globally)
npm install <package_name> -g 

當(dāng)運行目錄下沒有 package.json 時,運行 npm install 會安裝最新版本草戈。存在 package.json 時則會安裝 package.json 中記錄的版本及 package_name塌鸯。

package 會被安裝在當(dāng)前目錄的 node_modules 文件夾時,當(dāng)前目錄沒有 node_modules 文件夾時會自動創(chuàng)建唐片。若 node_modules 存在已有模塊則不會重復(fù)安裝丙猬,即使不是最新版本。

5. 使用安裝的包

例如安裝了包 “l(fā)odash”:

npm install lodash 

新建一個index.js 文件

var lodash = require('lodash'); //引入本地安裝的包
var output = lodash.without([1, 2, 3], 1);
console.log(output);

命令行運行: node index.js
輸出[2,3]
如果沒有成功安裝這個包费韭,輸出:

module.js:340
    throw err;
          ^
Error: Cannot find module 'lodash'

6. 更新包

  • 更新本地包:
npm update //在和你的package.json文件同目錄的地方運行此命令行
  • 更新全局包:
npm update -g <package_name> //更新特定的全局包
npm update -g //更新全部全局包

7. 卸載包

  • 卸載本地包:
npm uninstall <package_name> 
  • 卸載本地包以及從package.json文件的dependencies或者devDependencies中刪除:
npm uninstall --save <package_name>
npm uninstall --save-dev <package_name>
  • 卸載全局包:
npm uninstall -g <package_name>
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末茧球,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子星持,更是在濱河造成了極大的恐慌抢埋,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,470評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件揪垄,死亡現(xiàn)場離奇詭異饥努,居然都是意外死亡八回,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,393評論 3 392
  • 文/潘曉璐 我一進店門翘鸭,熙熙樓的掌柜王于貴愁眉苦臉地迎上來就乓,“玉大人噩翠,你說我怎么就攤上這事伤锚⊥驮” “怎么了弯淘?”我有些...
    開封第一講書人閱讀 162,577評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長态鳖。 經(jīng)常有香客問我郁惜,道長,這世上最難降的妖魔是什么虎韵? 我笑而不...
    開封第一講書人閱讀 58,176評論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮测萎,結(jié)果婚禮上硅瞧,老公的妹妹穿的比我還像新娘。我一直安慰自己枣接,他們只是感情好但惶,可當(dāng)我...
    茶點故事閱讀 67,189評論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著捌省,像睡著了一般纲缓。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上工闺,一...
    開封第一講書人閱讀 51,155評論 1 299
  • 那天惋增,我揣著相機與錄音林束,去河邊找鬼壶冒。 笑死,一個胖子當(dāng)著我的面吹牛胸嘁,可吹牛的內(nèi)容都是我干的凉逛。 我是一名探鬼主播,決...
    沈念sama閱讀 40,041評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼群井,長吁一口氣:“原來是場噩夢啊……” “哼状飞!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起酵使,我...
    開封第一講書人閱讀 38,903評論 0 274
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎口渔,沒想到半個月后悦穿,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,319評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡倦畅,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,539評論 2 332
  • 正文 我和宋清朗相戀三年绣的,在試婚紗的時候發(fā)現(xiàn)自己被綠了叠赐。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,703評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡惩嘉,死狀恐怖罢洲,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情文黎,我是刑警寧澤惹苗,帶...
    沈念sama閱讀 35,417評論 5 343
  • 正文 年R本政府宣布,位于F島的核電站耸峭,受9級特大地震影響桩蓉,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜劳闹,卻給世界環(huán)境...
    茶點故事閱讀 41,013評論 3 325
  • 文/蒙蒙 一院究、第九天 我趴在偏房一處隱蔽的房頂上張望洽瞬。 院中可真熱鬧,春花似錦业汰、人聲如沸伙窃。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,664評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽为障。三九已至,卻和暖如春放祟,著一層夾襖步出監(jiān)牢的瞬間产场,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,818評論 1 269
  • 我被黑心中介騙來泰國打工舞竿, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留京景,地道東北人。 一個月前我還...
    沈念sama閱讀 47,711評論 2 368
  • 正文 我出身青樓骗奖,卻偏偏與公主長得像确徙,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子执桌,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,601評論 2 353

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