「閱」——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)埠忘。如下圖例子所示:
有的時(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)目中安裝到模塊织阳,就像這樣:
如果你還想展開(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í)資源历极!