npx的使用


npx是一個工具,npm v5.2.0引入的一條命令(npx),一個npm包執行器,指在提高從npm注冊表使用軟件包時的體驗。

使用npx有如下好處:

1、可以直接執行npm包中的可執行文件
比如,項目內部安裝了測試工具mocha

npm install -D mocha

一般來說,調用mocha,只能在項目腳本和package.jsonscript字段里面,如果想在命令行下調用,必須像下面這樣:

node-modules/.bin/mocha --version

這樣使用比較麻煩,使用npx就簡單多了:

npx mocha --version

npx的原理很簡單,就是運行的時候,會到node_modules/.bin路徑和環境變量$PATH里面,檢測命令是否存在,存在則執行,不存在則臨時安裝mocha來執行。

2、避免全局安裝模塊
比如我們新建一個vue項目時,需要先進行腳手架@vue-cli的全局安裝,然后再進行項目的新建,如下:

npm install -g @vue/cli
vue create my-app

全局包默認的安裝路徑為C:\Users\xxx\AppData\Roaming\npm,安裝成功后,我們可以在該目錄下查看到安裝的包。

使用npx可簡化如下:

npx @vue/cli my-app

上面代碼運行時,npx@vue/cli下載到一個臨時目錄,使用以后再刪除。所以,以后再次 執行上面的命令時,會重新下載@vue/cli

3、可以指定node版本、命令的版本,解決了不同項目使用不同版本的命令的問題
相信小伙伴們都遇到過舊的項目用的是比較老的node版本,如果新項目想用新的node版本,則會存在不兼容的情況,可以通過安裝nvm來給本地安裝多個node包解決此問題。使用npx也可解決該問題。

npx node@12.20.0 -v

4、執行GitHub源碼
npx還可以執行GitHub上面的模塊源碼。需要注意的是,遠程代碼必須是一個模塊,即必須包含package.json和入口腳本。

5、npxyarn createnpm init區別
create-react-app為例,文檔給了我們三種創建應用的方式,如下:

npx create-react-app my-app
npm init react-app my-app
yarn create react-app my-app

npx先下載create-react-app最新包,執行完可執行文件后,即刪除
npm先全局安裝create-react-app的包,若已存在,則升級到最新版本,然后執行包的可執行文件,執行完即刪除。npm init等同於npm create,可參考官方文檔說明
yarn先全局安裝create-react-app的包,若已存在,則升級到最新版本,然后執行包的可執行文件,執行完不進行刪除,會保留在全局。

參考文章
1、npm 和 npx 有什么區別?
2、npx 使用教程
3、npx & yarn create & npm init


免責聲明!

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



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