什么是npx?


今天想學習一下react,打開例子執行代碼:

npx create-react-app my-app

上面代碼中出現了npx命令,第一次見這個命令,嚇得我趕緊去百度了一下這是什么命令:

npm 從5.2版開始,增加了 npx 命令。Node 自帶 npm 模塊,所以可以直接使用 npx 命令。

調用項目安裝的模塊

npx 想要解決的主要問題,就是調用項目內部安裝的模塊。比如,項目內部安裝了測試工具 Mocha。

$ npm install -D mocha

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

# 項目的根目錄下執行
$ node-modules/.bin/mocha --version

npx 就是想解決這個問題,讓項目內部安裝的模塊用起來更方便,只要像下面這樣調用就行了。

$ npx mocha --version

npx 的原理很簡單,就是運行的時候,會到node_modules/.bin路徑和環境變量$PATH里面,檢查命令是否存在。

由於 npx 會檢查環境變量$PATH,所以系統命令也可以調用。

避免全局安裝模塊

除了調用項目內部模塊,npx 還能避免全局安裝的模塊。比如,create-react-app這個模塊是全局安裝,npx 可以運行它,而且不進行全局安裝。

$ npx create-react-app my-react-app

上面代碼運行時,npx 將create-react-app下載到一個臨時目錄,使用以后再刪除。所以,以后再次執行上面的命令,會重新下載create-react-app。

下載全局模塊時,npx 允許指定版本。

$ npx uglify-js@3.1.0 main.js -o ./dist/main.js

上面代碼指定使用 3.1.0 版本的uglify-js壓縮腳本。

注意,只要 npx 后面的模塊無法在本地發現,就會下載同名模塊。比如,本地沒有安裝http-server模塊,下面的命令會自動下載該模塊,在當前目錄啟動一個 Web 服務。

$ npx http-server

還有其他幾種用法現在暫時沒用到,就先不寫了。


免責聲明!

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



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