npx: npm 5.2.0 內置的包執行器 歸納自 Introducing npx: an npm package runner 一文,詳細內容請查看原文。node
近日發佈的 npm 5.2.0 版本中內置了伴生命令:npx,相似於 npm 簡化了項目開發中的依賴安裝與管理,該工具致力於提高開發者使用包提供的命令行的體驗。npx 容許咱們使用本地安裝的命令行工具而不須要再定義 npm run-script,而且容許咱們僅執行一次腳本而不須要再將其實際安裝到本地;同時 npx 還容許咱們以不一樣的 node 版原本運行指定命令、容許咱們交互式地開發 node 命令行工具以及便捷地安裝來自於 gist 的腳本。react
在傳統的命令執行中,咱們須要將工具添加到 package.json 的 scripts
配置中,這種方式還須要咱們以 --
方式傳遞參數;咱們也可使用 alias npmx=PATH=$(npm bin):$PATH,
或者 ./node_modules/.bin/mocha
方式來執行命令,雖然都能達到目標,但難免繁雜了許多。而 npx 容許咱們以 npx mocha
這樣的方式直接運行本地安裝的 mocha 命令。git
完整的 npx 命令提示以下:github
從 npm 的可執行包執行命令 npx [選項] <命令>[@版本] [命令的參數]... npx [選項] [-p|--package <包>]... <命令> [命令的參數]... npx [選項] -c '<命令的字符串>' npx --shell-auto-fallback [命令行解釋器] 選項: --package, -p 包安裝的路徑 [字符串] --cache npm 緩存路徑 [字符串] --install 若是有包缺失,跳過安裝 [布爾] [默認值: true] --userconfig 當前用戶的 npmrc 路徑 [字符串] --call, -c 像執行 `npm run-script` 同樣執行一個字符串 [字符串] --shell, -s 執行命令用到的解釋器,可選 [字符串] [默認值: false] --shell-auto-fallback 產生「找不到命令」的錯誤碼 [字符串] [可選值: "", "bash", "fish", "zsh"] --ignore-existing 忽略 $PATH 或工程裏已有的可執行文件,這會強制使 npx 臨時安裝一次,而且使用其最新的版本 [布爾] --quiet, -q 隱藏 npx 的輸出,子命令不會受到影響 [布爾] --npm 爲了執行內部操做的 npm 可執行文件 [字符串] [默認值: "/Users/apple/.nvm/versions/node/v8.1.3/lib/node_modules/npm/bin/npm-cli.js"] --version, -v 顯示版本號 [布爾] --help, -h 顯示幫助信息 [布爾]
npx 還容許咱們單次執行命令而不須要安裝;在某些場景下有可能咱們安裝了某個全局命令行工具以後一直忘了更新,致使之後使用的時候誤用了老版本。而使用 npx create-react-app my-cool-new-app
來執行 create-react-app 命令時,它會正常地幫咱們建立 React 應用而不會實際安裝 create-react-app 命令行。
咱們還可使用相似於 $ npx -p node-bin@6 npm it
的格式來指定 Node 版本,或者使用 npx https://gist.github.com/zkat/4bc19503fe9e9309e2bfaa2c58074d32
方式直接運行來自於 Gist 的腳本。shell