[閱 #8] npm 實(shí)用小貼士

「閱」——JSCourse 旗下欄目淡诗,專(zhuān)門(mén)推薦我們?yōu)榇蠹揖奶暨x的優(yōu)質(zhì) JavaScript 相關(guān)技術(shù)內(nèi)容

大家好纱控,我是小 J期贫,很高興又和大家見(jiàn)面了梳星。今天我為大家準(zhǔn)備了幾個(gè)比較實(shí)用的 npm 小貼士赞赖,在實(shí)際開(kāi)發(fā)過(guò)程中或許會(huì)對(duì)大家有所幫助,我們來(lái)看下吧冤灾!

1. npm home 模塊名

這個(gè)命令會(huì)自定打開(kāi)你指定的模塊名的主頁(yè)(也就這個(gè)模塊 package.json 中 homepage 字段指定的 URL)前域,而且這個(gè)模塊未必是你本地安裝的,只要是倉(cāng)庫(kù)中有的就可以 , 而且這個(gè)命令也不需要非得在項(xiàng)目根目錄中運(yùn)行韵吨,任何地方都可以匿垄。比如:你輸入

npm home react

就會(huì)直接打開(kāi)瀏覽器,訪問(wèn)「https://facebook.github.io/react/」這個(gè)頁(yè)面归粉。其實(shí)如果你習(xí)慣了這個(gè)命令椿疗,還是挺實(shí)用的,起碼不需要去記網(wǎng)址了糠悼。

2. npm repo 模塊名

這個(gè)命令和上一個(gè)幾乎一樣届榄,唯一的區(qū)別是它會(huì)打開(kāi)瀏覽器訪問(wèn)這個(gè)模塊 package.json 文件中 repository 字段指明的 URL,比如倔喂,你輸入

npm repo react

就會(huì)打開(kāi)瀏覽器訪問(wèn)「https://github.com/facebook/react」铝条。

3. npm outdated

這個(gè)命令需要在項(xiàng)目中運(yùn)行靖苇,它會(huì)檢查你安裝的模塊,并告訴你哪些模塊已經(jīng)過(guò)期了班缰,有了新的版本贤壁。具體的信息則包括該模塊你當(dāng)前安裝的版本(Current)、你應(yīng)該要更新到的版本(Wanted)以及倉(cāng)庫(kù)中最新的版本(Latest)埠忘。如下圖例子所示:

npm outdated 示例結(jié)果

有的時(shí)候我們可能考慮對(duì)依賴模塊做升級(jí)脾拆,那么在這之前你就可以使用這個(gè)命令開(kāi)看下目前有哪些模塊有了更新。

4. npm prune

同樣的莹妒,這個(gè)命令需要在項(xiàng)目中運(yùn)行名船,它默認(rèn)會(huì)去比對(duì)你項(xiàng)目中 package.json 文件中聲明的依賴模塊(包括 dependencies 和 **devDependencies **)以及實(shí)際安裝的。如果發(fā)現(xiàn)實(shí)際安裝的在 package.json 中并未聲明 , 就會(huì)自動(dòng)幫你移除掉动羽。當(dāng)然了包帚,你可能會(huì)問(wèn)比如我依賴一個(gè)模塊 A,然后模塊 A 自己依賴模塊 B运吓,這個(gè)時(shí)候 B 肯定在 package.json 中沒(méi)有聲明(因?yàn)槲乙蕾嚨挠植皇?B)渴邦,這個(gè)時(shí)候 npm prune 會(huì)不會(huì)把 B 刪掉呢?這個(gè)當(dāng)然不會(huì)拘哨,否則就是個(gè)大 bug 了谋梭,因?yàn)榘?B 刪了 A 就不能工作了。所以這個(gè)命令還是去分析依賴關(guān)系的倦青,不是傻乎乎地就去刪了瓮床。另外,這個(gè)命令還支持你指定一個(gè)模塊产镐,比如:

npm prune react

那么它只會(huì)去比對(duì) react 這個(gè)模塊隘庄,你還可以指定只去比對(duì) dependencies 中的,而不去比對(duì) devDependencies癣亚,就像這樣:

npm prune --production

這個(gè)命令等于是在給你項(xiàng)目安裝的模塊瘦身丑掺,把不需要的刪掉,節(jié)約空間述雾。

5. npm config set save-prefix="~"

我們一般安裝模塊會(huì)使用 **npm install --save 或者 npm install --save-dev **街州,這樣就會(huì)把安裝的模塊記錄在 package.json 文件中,但是大家注意到?jīng)]有玻孟,package.json 文件中都會(huì)多一條這樣的數(shù)據(jù):

{
  dependencies: {
    "react": "^15.6.1"
  }
}

你發(fā)現(xiàn)沒(méi)有唆缴,版本號(hào)前面會(huì)有個(gè) ^ 符號(hào),而標(biāo)題中的這條命令就會(huì)把這個(gè)符號(hào)變?yōu)?~黍翎。那區(qū)別是什么呢面徽?區(qū)別就是 ^ 鎖定的是主版本號(hào)(Major Version),比如「^1.0.0」代表你可以安裝 1.x.x匣掸,而 ~ 符號(hào)鎖定的是主版本號(hào) + 次版本號(hào)(Minor Version)斗忌,如「~1.0.0」代表你只可以安裝 1.0.x质礼。如果你想鎖死版本號(hào),那可以直接使用:

npm config set save-exact true

6. npm ls --depth 0

這條命令可以一眼看到你項(xiàng)目中安裝到模塊织阳,就像這樣:

npm ls --depth 0 運(yùn)行結(jié)果示例

如果你還想展開(kāi)一層看看這些模塊各自又依賴了哪些模塊,那就運(yùn)行:

npm ls --depth 1

以此類(lèi)推砰粹!這個(gè)命令其實(shí)比你直接去 package.json 看依賴更加直觀唧躲,而且還可以看到整個(gè)依賴關(guān)系。

7. 不同項(xiàng)目采用不同的 npm 配置

有的時(shí)候我們希望不同的項(xiàng)目有不同的 npm 配置碱璃,怎么辦呢弄痹?你就可以直接在項(xiàng)目中創(chuàng)建一個(gè) .npmrc 文件,然后將這個(gè)項(xiàng)目所需的配置寫(xiě)進(jìn)去嵌器。如果要快速查看當(dāng)前的配置肛真,可以運(yùn)行:

npm config list

好了,以上就是今天要分享個(gè)大家的小貼士爽航,希望對(duì)你有所幫助蚓让!我們下期見(jiàn)咯,拜拜讥珍!

?關(guān)注「jscourse」微信公眾號(hào)獲取最新課程和學(xué)習(xí)資源历极!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市衷佃,隨后出現(xiàn)的幾起案子趟卸,更是在濱河造成了極大的恐慌,老刑警劉巖氏义,帶你破解...
    沈念sama閱讀 210,914評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件锄列,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡惯悠,警方通過(guò)查閱死者的電腦和手機(jī)邻邮,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,935評(píng)論 2 383
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)吮螺,“玉大人饶囚,你說(shuō)我怎么就攤上這事○梗” “怎么了萝风?”我有些...
    開(kāi)封第一講書(shū)人閱讀 156,531評(píng)論 0 345
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)紫岩。 經(jīng)常有香客問(wèn)我规惰,道長(zhǎng),這世上最難降的妖魔是什么泉蝌? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,309評(píng)論 1 282
  • 正文 為了忘掉前任歇万,我火速辦了婚禮揩晴,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘贪磺。我一直安慰自己硫兰,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,381評(píng)論 5 384
  • 文/花漫 我一把揭開(kāi)白布寒锚。 她就那樣靜靜地躺著劫映,像睡著了一般。 火紅的嫁衣襯著肌膚如雪刹前。 梳的紋絲不亂的頭發(fā)上泳赋,一...
    開(kāi)封第一講書(shū)人閱讀 49,730評(píng)論 1 289
  • 那天,我揣著相機(jī)與錄音喇喉,去河邊找鬼祖今。 笑死,一個(gè)胖子當(dāng)著我的面吹牛拣技,可吹牛的內(nèi)容都是我干的千诬。 我是一名探鬼主播,決...
    沈念sama閱讀 38,882評(píng)論 3 404
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼过咬,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼大渤!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起掸绞,我...
    開(kāi)封第一講書(shū)人閱讀 37,643評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤泵三,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后衔掸,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體烫幕,經(jīng)...
    沈念sama閱讀 44,095評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,448評(píng)論 2 325
  • 正文 我和宋清朗相戀三年敞映,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了较曼。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,566評(píng)論 1 339
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡振愿,死狀恐怖捷犹,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情冕末,我是刑警寧澤萍歉,帶...
    沈念sama閱讀 34,253評(píng)論 4 328
  • 正文 年R本政府宣布,位于F島的核電站档桃,受9級(jí)特大地震影響枪孩,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,829評(píng)論 3 312
  • 文/蒙蒙 一蔑舞、第九天 我趴在偏房一處隱蔽的房頂上張望拒担。 院中可真熱鬧,春花似錦攻询、人聲如沸从撼。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,715評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)谋逻。三九已至,卻和暖如春桐经,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背浙滤。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,945評(píng)論 1 264
  • 我被黑心中介騙來(lái)泰國(guó)打工阴挣, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人纺腊。 一個(gè)月前我還...
    沈念sama閱讀 46,248評(píng)論 2 360
  • 正文 我出身青樓畔咧,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親揖膜。 傳聞我的和親對(duì)象是個(gè)殘疾皇子誓沸,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,440評(píng)論 2 348

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

  • 什么是 NPM npm之于Node,就像pip之于Python,gem之于Ruby,composer之于PHP壹粟。 ...
    ihoey閱讀 6,249評(píng)論 2 36
  • Spring Cloud為開(kāi)發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見(jiàn)模式的工具(例如配置管理拜隧,服務(wù)發(fā)現(xiàn),斷路器趁仙,智...
    卡卡羅2017閱讀 134,626評(píng)論 18 139
  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 171,727評(píng)論 25 707
  • npm是什么 NPM的全稱是Node Package Manager洪添,是隨同NodeJS一起安裝的包管理和分發(fā)工具...
    build1024閱讀 7,864評(píng)論 0 9
  • 下午放了學(xué),爸爸帶我回家雀费,去了農(nóng)貿(mào)市場(chǎng)干奢,買(mǎi)了一些水果還有蔬菜。 菜市場(chǎng)有各種各樣的水果盏袄,我看見(jiàn)的水果有忿峻,蘋(píng)果,橘子...
    蘇暢寶閱讀 260評(píng)論 0 1