03.npm 包管理

  • 通過使用npm來進(jìn)行基本的包管理

初始化管理

  • 對(duì)于每個(gè)項(xiàng)目來說都會(huì)有自己的依賴文件這時(shí)候就需要從開始就通過npm初始化

npm init 或者npm init -y 通過初始化會(huì)創(chuàng)建出package.json文件 (不要有中文)

package.json

  • name 項(xiàng)目名稱
  • version 版本號(hào) 1.. 表示有重大更新 .1. 局部更新 ..1 (1.1.*) bug修補(bǔ)
  • description 項(xiàng)目的說明
  • entry point 項(xiàng)目的入口文件
  • test command 測試
  • git repository git網(wǎng)站(git bub上面找到)
  • keywords 關(guān)鍵字
  • author 作者
  • license 協(xié)議(MIT 既可以商用也可以私用)
  • scripts 用來保存常用命令 (npm run scripts中的key)
  • dependencies
    • 一個(gè)完整的版本號(hào)組表示為: [主要版本號(hào),次要版本號(hào)凰兑,補(bǔ)丁版本號(hào)]
    • > +版本號(hào) 下載大于某個(gè)版本號(hào),npm會(huì)下最新版
    • < +版本號(hào) 下載小于某個(gè)版本號(hào)蝗敢,npm會(huì)下小于這個(gè)版本號(hào)最新版
    • <= 小于等于 一定會(huì)下你寫的這個(gè)版本,除非沒有你寫的這個(gè)版本
    • >= 大于等于 下載最新版
    • *、" "、X 任意 npm會(huì)給你下最新版
    • ^ +版本號(hào) 不躍遷版本下載雏逾,^2.1.0 npm會(huì)下載大版本不變,去下載2.x.x版本里的最近版
    • ~ +版本號(hào) 會(huì)去下約等于這個(gè)版本的最新版郑临,在大版本不變的情
  • 參考文獻(xiàn) package.json全字段解析
  • 參考2
  • 官方文檔

下載包

  • 本地下載 npm install jquery 或者 npm i jquery
  • npm install jquery --savenpm install -S jquerynpm i -S jquery 本地下載并保存到package.json中的dependencies
  • npm install jquery --save-devnpm install -D jquerynpm i -D jquery 本地下載并保存到package.json中的devDependencies
  • npm install 將package.json中devDependencies和dependencies 都進(jìn)行下載
  • npm install -production 只下載devpendencies中的文件
  • npm install angular@1.5.8 根據(jù)不同版本下載包
  • npm install -g nrm 全局進(jìn)行下載
  • npm install angular --registry=https://registry.npm.taobao.org 修改鏡像源 從淘寶下載angular
  • 下載包 install 刪除包 uninstall 更新包 update

查看包

  • npm info jquery 查看包的詳細(xì)信息
  • npm docs jquery 打開包homepage 地址

查看更多包的相關(guān)信息

nrm(鏡像源切換) npm (包下載) nvm(node版本管理)

  • nrm 鏡像源切換校套,通過nrm切換 .npmrc registry的下載地址
  • npm install -g nrm 全局進(jìn)行下載
  • nrm ls 查看鏡像源
  • nrm use taobao 切換鏡像源
  • nrm test 測試下載速度
  • nrm切換好鏡像源以后 直接影響npm 下載,設(shè)置好以后不需要再做修改

bower npm yarn 常用的下載包的工具

  • 下載 npm install bower -g
  • bower下載慢 bower會(huì)把依賴的包也下載過來 node4(npm 2 也會(huì)將依賴的包也下載過來)
  • bower 的下載地址github npm 從npmjs的官網(wǎng)下載
  • bower 可以指定下載的路徑
    //通過創(chuàng)建.bowerrc 添加
    {
    "directory":"js/common" //你的文件路徑
    }

yarn 也是一個(gè)下載工具

  • yarn由facebook公司在npm的基礎(chǔ)上創(chuàng)建一個(gè)下載工具
  • yarn 下載速度要快一些 更方便管理主體包所依賴的包 yarn在做管理時(shí)更加精確
  • 全局下載yarn npm install -g yarn
  • yarn add jquery 下載jquery
  • yarn remove jquery 移除jquery
  • yarn init yarn初始化
  • yarn global add http-server 全局下載包

bower yarn npm

  • bower 可以指定路徑下載
  • yarn 下載速度快 管理精確
  • npm 最基本的下載

項(xiàng)目初始化

    1. 方便管理你的項(xiàng)目
    1. 如果有其他人使用能很快的知道這個(gè)項(xiàng)目是做什么用
    1. 通過script標(biāo)簽來簡化 命令行
    1. 方便管理你項(xiàng)目中所需的依賴

瀏覽器的包 node中的包的不同

  • 瀏覽器引用一個(gè)包 script:src seajs commjs 都需要下載 異步
  • node的包不需要下載(node運(yùn)行在本地)同步的node CMD同步 Commonjs規(guī)范 (require moduels)

node 模塊化(是以功能為主)

  • 在node中有以下的方式引用包或者是模塊化

  • 暴露出去的方式一共有以下3種方式

  • 在node中找模塊有下面這么幾種方式尋找

  • 緩存中->系統(tǒng)包->node_modules->按照路徑查找

  • 會(huì)在系統(tǒng)緩存中查找對(duì)應(yīng)包

  • 如果是按照系統(tǒng)模塊查找 按照模塊的名稱查找

  • 如果是按照模塊的方式查找 node_modules

  • 如果是路徑查找 .node(c++代碼)->.js->.json->報(bào)錯(cuò) (不建議省略后綴名)

global 全局對(duì)象的方式引用包

  • other.js 在other中通過 global.a=100 將a暴露出去

  • app.js 然后在app.js 通過require的方式加載other(require('相對(duì)路徑或者絕對(duì)路徑'))

  • global暴露模塊有一個(gè)問題是會(huì)污染全局變量

modules

  • 通過modules.export將屬性或者是方法暴露給外界
  • 外界通過require()的方式獲取暴露出來的內(nèi)容 let b=require('./other2.js)
// other2.js
module.exports={
    b:b
}

exports

  • 通過modules.export將屬性或者是方法暴露給外界
  • 外界通過require()的方式獲取暴露出來的內(nèi)容 let b=require('./other2.js) b.b
// other2.js
exports.b=200

系統(tǒng)包

  • path 路徑
  • fs 文件系統(tǒng)
  • assert 斷言
  • http 網(wǎng)絡(luò)服務(wù)
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末牧抵,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌犀变,老刑警劉巖妹孙,帶你破解...
    沈念sama閱讀 216,692評(píng)論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異获枝,居然都是意外死亡蠢正,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,482評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門省店,熙熙樓的掌柜王于貴愁眉苦臉地迎上來嚣崭,“玉大人,你說我怎么就攤上這事懦傍”⒁ǎ” “怎么了?”我有些...
    開封第一講書人閱讀 162,995評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵粗俱,是天一觀的道長说榆。 經(jīng)常有香客問我,道長寸认,這世上最難降的妖魔是什么签财? 我笑而不...
    開封第一講書人閱讀 58,223評(píng)論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮偏塞,結(jié)果婚禮上唱蒸,老公的妹妹穿的比我還像新娘。我一直安慰自己灸叼,他們只是感情好神汹,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,245評(píng)論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著怜姿,像睡著了一般慎冤。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上沧卢,一...
    開封第一講書人閱讀 51,208評(píng)論 1 299
  • 那天蚁堤,我揣著相機(jī)與錄音,去河邊找鬼但狭。 笑死披诗,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的立磁。 我是一名探鬼主播呈队,決...
    沈念sama閱讀 40,091評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢(mèng)啊……” “哼唱歧!你這毒婦竟也來了宪摧?” 一聲冷哼從身側(cè)響起粒竖,我...
    開封第一講書人閱讀 38,929評(píng)論 0 274
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎几于,沒想到半個(gè)月后蕊苗,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,346評(píng)論 1 311
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡沿彭,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,570評(píng)論 2 333
  • 正文 我和宋清朗相戀三年朽砰,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片喉刘。...
    茶點(diǎn)故事閱讀 39,739評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡瞧柔,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出睦裳,到底是詐尸還是另有隱情造锅,我是刑警寧澤,帶...
    沈念sama閱讀 35,437評(píng)論 5 344
  • 正文 年R本政府宣布推沸,位于F島的核電站备绽,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏鬓催。R本人自食惡果不足惜肺素,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,037評(píng)論 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望宇驾。 院中可真熱鬧倍靡,春花似錦、人聲如沸课舍。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,677評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽筝尾。三九已至捡需,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間筹淫,已是汗流浹背站辉。 一陣腳步聲響...
    開封第一講書人閱讀 32,833評(píng)論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留损姜,地道東北人饰剥。 一個(gè)月前我還...
    沈念sama閱讀 47,760評(píng)論 2 369
  • 正文 我出身青樓,卻偏偏與公主長得像摧阅,于是被迫代替她去往敵國和親汰蓉。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,647評(píng)論 2 354

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