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 當然,運行你無法控制的代碼時,你需要小心,因為偉大的力量伴隨著偉大的責任。