原文地址: 8 npm Tricks You Can Use to Impress Your Colleagues
做者: Adir Amsalem
譯者: weapon-xnode
你看一個同事正在編碼,其中應用上了一些簡寫和技巧,不知爲什麼,你不熟悉它而且你的大腦一片混亂,這種場景發生在過去咱們每一個人身上。npm
在這篇短文中,咱們將會介紹一些很是實用的 npm 技巧。有不少文章中的技巧會比這裏覆蓋得更廣,因此我選擇把重點放在與開發者最相關和使用的工做流中。json
爲了讓每一個人都對齊進度,特別是新來的同窗,一塊兒來快速瀏覽一遍基礎簡寫,保證沒有錯過任何細節。瀏覽器
常規: npm install pkg
簡寫:npm i pkg
工具
常規: npm i --global pkg
簡寫:npm i -g pkg
post
常規: npm i --save pkg
簡寫:npm i -S pkg
學習
常規: npm i --save-dev pkg
簡寫:npm i -D pkg
測試
其他的簡寫請閱讀 npm 的簡寫列表編碼
如今開始讓咱們來作一些有趣的事情吧。code
咱們都知道 npm init
,當咱們建立一個新的包時,這是咱們作的第一件事。
可是,以上的問題是很是煩人的,同時咱們會修改它,因此咱們爲何不避開它呢?
npm init -y
和 npm init -f
能夠很好地解決。
另外一個咱們都會用到的命令是 npm test
,咱們當中大多數人天天都在使用它,可能一天好幾回。
假如我告訴,你用減小 40% 的字數作一樣的事情那要怎麼作呢?咱們能夠這樣作,而且這是一個完勝。
那就是 npm t
。
咱們拿到了一個新項目,就會考慮如何去開始上手。咱們常常會自問這些事情:我該如何運行呢?哪些腳本是可用的呢?
一個方法是打開 package.json
文件並檢查 scripts
部分。
咱們固然能夠作得更好,因此咱們能夠運行 npm run
而且獲得全部可用腳本的列表。
其他的選項能夠安裝 ntl (npm i -g ntl
),而後在項目文件目錄下運行 ntl
,這樣可讓運行腳本變得很是方便。
與可用腳本類似,有時咱們會問本身:咱們擁有哪些依賴包在項目中。
咱們能夠再一次打開 package.json
文件去檢查,可是咱們已經知道能夠作的更好。
迎接 npm ls --depth 0
。
列舉全局安裝的包,咱們能夠加上 -g
標誌,npm ls -g --depth 0
。
咱們安裝了包在項目中,它附帶了一個可執行文件,可是它只能經過 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>
。
你可能會在 package.json 文件中看到倉庫的入口而且想知道它用來作什麼呢?
回答這個問題,只須要簡單地運行 npm repo
就能夠在瀏覽器打開並查看了。
還有一樣適用的是,npm home
命令對應 homepage
入口。
假如你想在 npmjs.com 打開包的頁面,這也有至關棒的簡寫能夠作到,npm docs
。
你可能熟悉諸如預測試之類的腳本,這容許你能夠在運行測試腳本以前編寫代碼。
你可能會驚喜地發現,對於每一個腳本能夠有 pre 和 post 腳本,包括你本身的腳本。
這在使用 npm 做爲構建工具和須要編寫許多腳本的項目中會很是有用。
假如你擁有一個包,使用了 semver (語義化版本規範)來控制版本,在發佈新版本以前須要作一次版本檢測。
其中一個方法是,打開 package.json
文件去手動修改版本,但咱們但願不要這樣去作。
更簡單的方法是運行 npm version
帶上 major
,minor
或者 patch
。
目前爲止,以上就是所有了。
我但願你能學到新的東西和找到一個對平常工做有用的技巧,能夠更好的瞭解 npm 而且有一些新的想法能夠更好地運用在工做中。
更好地打動你的同事,最好常常學習新的東西變得更加專業。
若是你知道其餘的實用技巧,請在評論中分享~