用8個 npm 技巧打動你的同事


原文地址: 8 npm Tricks You Can Use to Impress Your Colleagues
作者: Adir Amsalem
譯者: weapon-x


你看一個同事正在編碼,其中應用上了一些簡寫和技巧,不知為何,你不熟悉它並且你的大腦一片混亂,這種場景發生在過去我們每個人身上。

在這篇短文中,我們將會介紹一些非常實用的 npm 技巧。有很多文章中的技巧會比這里覆蓋得更廣,所以我選擇把重點放在與開發者最相關和使用的工作流中。

開始之前一些基礎的簡寫

為了讓每個人都對齊進度,特別是新來的同學,一起來快速瀏覽一遍基礎簡寫,保證沒有錯過任何細節。

安裝包

常規: npm install pkg 簡寫:npm i pkg

安裝包在全局

常規: npm i --global pkg 簡寫:npm i -g pkg

安裝包作為依賴(dependency)

常規: npm i --save pkg 簡寫:npm i -S pkg

安裝包作為開發依賴(devDependency)

常規: npm i --save-dev pkg 簡寫:npm i -D pkg

其余的簡寫請閱讀 npm 的簡寫列表

現在開始讓我們來做一些有趣的事情吧。

1.初始化一個新的包

我們都知道 npm init,當我們創建一個新的包時,這是我們做的第一件事。

 

npm init 需要填寫一系列問題

 

但是,以上的問題是非常煩人的,同時我們會修改它,所以我們為什么不避開它呢?

npm init -y 和 npm init -f 可以很好地解決。

 

npm init -y

 

2.運行測試

另一個我們都會用到的命令是 npm test,我們當中大多數人每天都在使用它,可能一天好幾次。

 

npm test

 

假如我告訴,你用減少 40% 的字數做同樣的事情那要怎么做呢?我們可以這樣做,並且這是一個完勝。

那就是 npm t

 

npm t

 

3.列舉可運行的腳本

我們拿到了一個新項目,就會考慮如何去開始上手。我們經常會自問這些事情:我該如何運行呢?哪些腳本是可用的呢?

一個方法是打開 package.json 文件並檢查 scripts 部分。

 

package.json

 

我們當然可以做得更好,所以我們可以運行 npm run 並且得到所有可用腳本的列表。

 

npm run

 

其余的選項可以安裝 ntl (npm i -g ntl),然后在項目文件目錄下運行 ntl ,這樣可以讓運行腳本變得非常方便。

 

ntl

 

4.列舉已安裝的包

與可用腳本相似,有時我們會問自己:我們擁有哪些依賴包在項目中。

我們可以再一次打開 package.json 文件去檢查,但是我們已經知道可以做的更好。

迎接 npm ls --depth 0

 

npm ls --depth 0

 

列舉全局安裝的包,我們可以加上 -g 標志,npm ls -g --depth 0

 

npm ls -g --depth 0

 

5.運行本地安裝的可執行文件

我們安裝了包在項目中,它附帶了一個可執行文件,但是它只能通過 npm 腳本來運行,你想知道為什么或者如何去拿下它嗎?

首先來理解為什么 -- 當我們在 terminal 中執行命令時,實際發生的是,它在 PATH 環境變量里列舉出所有的路徑,去尋找相同名字的可執行文件。安裝在本地的包只在本地注冊了他們的執行文件,所以他們不會被列在 PATH 環境變量中以至於不會被找到。

這時你可能會問,當我們通過 npm 腳本運行這些可執行文件時是如何正常工作的?問的好!這是因為 npm 用了一些“手法”並且添加了額外的文件夾到 PATH 中,<project-directory>/node_modules/.bin

你可以通過運行 npm run env | grep "$PATH 看到它,也可以運行 npm run env 來看到所有可用的環境變量,npm 會添加一些有趣的東西。

node_modules/.bin,假如你知道,這恰恰就是本地安裝包放置其可執行文件的地方。

在項目目錄下,讓我們來運行 ./node_modules/.bin/mocha 看看。

 

./node_modules/.bin/mocha

 

很簡單對吧?無論何時,你想要運行本地安裝的執行文件的話就運行./node_modules/.bin/<command>

6.在網上找到你的包

你可能會在 package.json 文件中看到倉庫的入口並且想知道它用來做什么呢?

回答這個問題,只需要簡單地運行 npm repo 就可以在瀏覽器打開並查看了。

還有同樣適用的是,npm home 命令對應 homepage 入口。

假如你想在 npmjs.com 打開包的頁面,這也有相當棒的簡寫可以做到,npm docs

7.在其他腳本之前和之后運行腳本

你可能熟悉諸如預測試之類的腳本,這允許你可以在運行測試腳本之前編寫代碼。

你可能會驚喜地發現,對於每個腳本可以有 pre 和 post 腳本,包括你自己的腳本。

 

pre and post script

 

這在使用 npm 作為構建工具和需要編寫許多腳本的項目中會非常有用。

8.檢測包的版本

假如你擁有一個包,使用了 semver (語義化版本規范)來控制版本,在發布新版本之前需要做一次版本檢測。

其中一個方法是,打開 package.json 文件去手動修改版本,但我們希望不要這樣去做。

更簡單的方法是運行 npm version 帶上 majorminor 或者 patch

 

npm version

 

9.npm link是用來鏈接全局包的命令,npm link主要是為模塊開發者使用的一個命令,設想這樣的一個情景:你開發了一個模塊a並發布了(npm public),並在項目中引入這個模塊,在使用過程中發現了a有bug,你改動了a,於是需要重新npm public,發布完你又要回到自己的項目中用npm update命令來更新模塊,如果只是小改動還好,如果是開發初期的頻繁更新,那么就很浪費時間,畢竟自己開發的模塊在本機還要更新,這個步驟明顯很多余。npm link命令就是用來同步模塊更新的,一般應用場景如下:

自己開發的包名為appy,放在src/appy文件夾——cd to src/appy——npm link,將會把src/appy這個包復制到npm的全局模塊安裝文件夾node_modules內,並創建符號鏈接(symbolic link,應該是一個軟鏈接)——自己的項目放在src/mysite文件夾——cd to src/mysite——npm link appy,那么項目中的appy包就會和src/appy相關聯,每次npm publish后,項目文件夾里面的appy包都會隨之更新。

有時候這個包並不是你開發的,但是你想contribute這個包時,也可以在自己的項目文件夾中直接用npm link <package>,這個包同樣會被安裝到全局,並和此項目中的包相關聯。

 

10.npm root [-g],打印出node_modules文件夾路徑,加個-g可以查看全局包的安裝路徑,有時候忘了全局包安裝路徑這個小命令還是蠻有用的。

 

11.npm run <command>用npm run來跑package.json里面script字段內的命令,可以直接打npm run查看有哪些命令

 

12.npm update [-g] [<pkg>...]用來更新包,需要注意的是包更新依然需要符合package.json中的版本號范圍,只會在版本號范圍內更新最新版本的包。有-g--dev--save參數,沒有加具體包名時默認更新所有的包。

 

13.npm docs <pkg> 這個命令可以直接打開包的官方文檔網站,一般就是github了,不過打開速度不是很快。

 

 

目前為止,以上就是全部了。

我希望你能學到新的東西和找到一個對日常工作有用的技巧,可以更好的了解 npm 並且有一些新的想法可以更好地運用在工作中。

更好地打動你的同事,最好經常學習新的東西變得更加專業。

如果你知道其他的實用技巧,請在評論中分享~


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM