原文地址: https://monster1935.com/2019/12/23/what-is-npx/
今天在看到 create-react-app
倉庫時,在其安裝方式上看到這樣一條指令,一臉懵逼,這是什麼?javascript
npx create-react-app my-app cd my-app npm start
nvm
、 nrm
、 npm
、npx
, 相似的名詞家常便飯,npx
究竟是什麼?html
照例來到 github, 如其官方倉庫的解釋:java
npm package executor
這是 npm 的包執行器,那麼問題來了,這是何時出現的一個這樣的工具,以前一直沒用這個工具豈不也是好好的?node
查閱資料得知,npx 是 npm v5.2.0 版本以後一塊兒打包的安裝的一個包執行器,在沒有這個包執行器以前,咱們如何執行一個 npm 包的指令,首先咱們要搞懂執行一個已安裝的npm包的指令的過程。react
npm intall ***
指令後,在當前執行路徑下的 node_module 文件夾下會默認添加該 npm 包對應的文件夾,並在 .bin 文件夾下生成對應的二進制執行指令執行一個 npm 包就有兩種方式:webpack
node_modules/.bin/webpack
有了 npx 之後,咱們就能夠直接使用 npx 命令去執行了,去尋找二進制命令文件的重任就交給了它,好比 npx webpack
, 不再用去寫 node_modules/.bin/***
git
如上介紹了 npx 執行指令對於咱們來講一個顯而易見的用處,那麼除此以外,npx 還有一個用途就是沒必要全局安裝一些 npm 包,直接使用 npx 命令去執行一些 npm 指令,若是本地沒有安裝的話會直接拉取最新的版本安裝並執行。 那麼 npx 的執行是一個什麼樣的過程:github
注意:第一步中檢查本地是否安裝,npx 會去 node_modules/.bin
以及 $PATH
下需尋找該 package 對應的指令是否被安裝。web
下面是 npx 的一些高級用法,平常開發場景下不知道會不會用到這樣的定製方式。npm
--no-install
, 本地未安裝時報錯--ignore-existing
-p
, 指定多個模塊的時候使用-c
, 指定多個模塊執行時使用package.json
和入口腳本)