原文地址: 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 -y
和 npm init -f
可以很好地解決。
2.執行測試
另一個我們都會用到的命令是 npm test
,我們當中大多數人每天都在使用它,可能一天好幾次。
假如我告訴,你用減少 40% 的字數做同樣的事情那要怎麼做呢?我們可以這樣做,並且這是一個完勝。
那就是 npm t
。
3.列舉可執行的指令碼
我們拿到了一個新專案,就會考慮如何去開始上手。我們經常會自問這些事情:我該如何執行呢?哪些指令碼是可用的呢?
一個方法是開啟 package.json
檔案並檢查 scripts
部分。
我們當然可以做得更好,所以我們可以執行 npm run
並且得到所有可用指令碼的列表。
其餘的選項可以安裝 ntl (npm i -g ntl
),然後在專案檔案目錄下執行 ntl
,這樣可以讓執行指令碼變得非常方便。
4.列舉已安裝的包
與可用指令碼相似,有時我們會問自己:我們擁有哪些依賴包在專案中。
我們可以再一次開啟 package.json
檔案去檢查,但是我們已經知道可以做的更好。
迎接 npm ls --depth 0
。
列舉全域性安裝的包,我們可以加上 -g
標誌,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/<command>
。
6.在網上找到你的包
你可能會在 package.json 檔案中看到倉庫的入口並且想知道它用來做什麼呢?
回答這個問題,只需要簡單地執行 npm repo
就可以在瀏覽器開啟並檢視了。
還有同樣適用的是,npm home
命令對應 homepage
入口。
假如你想在 npmjs.com 開啟包的頁面,這也有相當棒的簡寫可以做到,npm docs
。
7.在其他指令碼之前和之後執行指令碼
你可能熟悉諸如預測試之類的指令碼,這允許你可以在執行測試指令碼之前編寫程式碼。
你可能會驚喜地發現,對於每個指令碼可以有 pre 和 post 指令碼,包括你自己的指令碼。
這在使用 npm 作為構建工具和需要編寫許多指令碼的專案中會非常有用。
8.檢測包的版本
假如你擁有一個包,使用了 semver (語義化版本規範)來控制版本,在釋出新版本之前需要做一次版本檢測。
其中一個方法是,開啟 package.json
檔案去手動修改版本,但我們希望不要這樣去做。
更簡單的方法是執行 npm version
帶上 major
,minor
或者 patch
。
目前為止,以上就是全部了。
我希望你能學到新的東西和找到一個對日常工作有用的技巧,可以更好的瞭解 npm 並且有一些新的想法可以更好地運用在工作中。
更好地打動你的同事,最好經常學習新的東西變得更加專業。
如果你知道其他的實用技巧,請在評論中分享~