npx 命令介紹


這個是在 npmv5.2.0引入的一條命令(查看),引入這個命令的目的是為了提升開發者使用包內提供的命令行工具的體驗。

為什么引入這個命令

舉個例子,我們開發中要運行 parcel 命令來打包:parcel index.html,以前有這么幾種方式:

  1. 全局安裝 parcel,但有時不同項目使用不同版本,不允許使用全局包,只能考慮下面一些方法
  2. 使用 npm scripts,在 package.json 加一個 script
    "scripts": {
        "start": "parcel index.html"
    }

    然后執行 npm run start

  3. 將 node_modules 的可執行目錄(.bin)加到 PATH 中
    alias npmx=PATH=$(npm bin):$PATH

    然后執行 npmx parcel index.html

  4. 指定可執行命令路徑
    ./node_modules/.bin/parcel index.html

現在我們有了 npx 命令,就不在需要考慮以上方法了(其實npx 是對方法 3 的封裝)。當我們執行 npx parcel index.html 時,會自動去./node_modules/.bin目錄下搜索。

npx 還允許我們單次執行命令而不需要安裝,例如:

npx create-react-app my-cool-new-app

這條命令會臨時安裝 create-react-app 包,命令完成后 create-react-app 會刪掉,不會出現在 global 中。下次再執行,還是會重新臨時安裝。

npx命令找包順序:先自動查找當前依賴包中的可執行文件,如果找不到,就會去 PATH 里找。如果依然找不到,就會幫你臨時安裝,執行完后再刪除包。

特點:

  1. 臨時安裝可執行依賴包,不用全局安裝,不用擔心長期的污染。
  2. 可以執行依賴包中的命令,安裝完成自動運行。
  3. 自動加載node_modules中依賴包,不用指定$PATH。
  4. 可以指定node版本、命令的版本,解決了不同項目使用不同版本的命令的問題。


免責聲明!

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



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