npx是一種非常酷的執行Node代碼的方式,提供了許多有用的功能。
在這篇文章中,我想介紹一個非常強大的命令,從2017年7月開始在npm的5.2版本中可用:npx。
如果你不想安裝npm,你可以單獨安裝npx套件
npx讓你執行使用Node編寫並通過npm註冊表發佈的代碼。
輕鬆運行本地命令
Node開發人員習慣將大多數可執行命令作為全局套件發佈,以便它們能夠在路徑中並立即執行。
這很痛苦,因為實際上你不能安裝不同版本的相同命令。
運行npx 命令名稱
將自動在項目的node_modules
文件夾中找到正確的命令引用,而無需知道確切的路徑,也無需將套件安裝為全局註冊。
無需安裝的命令執行
npm還有另一個很棒的功能,就是允許在不先安裝它們的情況下運行命令。
這非常有用,主要原因是:
- 你不需要安裝任何東西
- 你可以運行不同版本的相同命令,使用@version語法
使用npx
的典型演示是通過cowsay
命令。cowsay
會打印一頭牛,說出你在命令中輸入的內容。例如:
cowsay "Hello"
將打印以下內容:
____
< Hello >
--------
\ ^__^
\ (oo)\_______
(__)\ )\/\
||-----w |
|| ||
現在,如果你之前從npm全局安裝了cowsay
命令,否則當你嘗試運行該命令時,將會出錯。
使用npx
,你可以在本地執行該npm命令,而無需將其安裝:
npx cowsay "Hello"
就能運行了。
現在這只是一個有趣但毫無用處的命令。其他場景包括:
- 使用
vue
CLI工具創建新應用程序並運行:npx vue create my-vue-app
- 使用
create-react-app
創建新的React應用程序:npx create-react-app my-react-app
等等。
一旦下載完成,下載的代碼將被刪除。
使用不同的Node版本運行代碼
使用@
指定版本,並結合node
npm套件來達到這個目的:
npx [[email protected]](/cdn-cgi/l/email-protection) -v #v6.14.3
npx [[email protected]](/cdn-cgi/l/email-protection) -v #v8.11.3
這有助於避免像nvm
或其他Node版本管理工具這樣的工具。
直接從URL運行任意代碼片段
npx
並不限制你只能運行npm註冊表中發佈的套件。
你可以運行存儲在GitHub Gist中的代碼,例如:
npx https://gist.github.com/zkat/4bc19503fe9e9309e2bfaa2c58074d32
當然,運行你無法控制的代碼時,你需要小心,因為偉大的力量伴隨著偉大的責任。