溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Node.js中npx命令的用法及使用場景介紹

發(fā)布時間:2021-08-02 10:59:04 來源:億速云 閱讀:159 作者:chen 欄目:開發(fā)技術(shù)

這篇文章主要介紹“Node.js中npx命令的用法及使用場景介紹”,在日常操作中,相信很多人在Node.js中npx命令的用法及使用場景介紹問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”Node.js中npx命令的用法及使用場景介紹”的疑惑有所幫助!接下來,請跟著小編一起來學(xué)習(xí)吧!

npx使用教程

今晚在學(xué)習(xí)Vue-Cli時, 由于突發(fā)奇想想試試最新的@4.x.x版本, 但是本地全局安裝的腳手架版本是@2.x.x的, 因為不想污染全局于是就想到用npx命令, 一路上踩坑不斷, 為了以后能夠更好的使用npx并區(qū)分其跟npm的指令, 就有了本篇筆記

npm 是從5.2版開始, 增加(自帶)了 npx 命令。 如果發(fā)現(xiàn)沒安裝請手動安裝:

npm i -g npx

npm與npx的概念

  • NPM(Node Package Manager) 是Node.js提供的一個包管理器, 可以使用 NPM 來安裝 node.js 包

  • NPX(Node Package Excuted) 可以理解為用于臨時安裝并執(zhí)行某個包的一個工具

總結(jié)的來說:

  • npm專注于安裝包

  • npx專注于執(zhí)行包, 并且是較特殊的執(zhí)行

npx的使用場景(對比npm的一些優(yōu)勢)

從幾個使用場景出發(fā), 希望能夠有對應(yīng)您當(dāng)前的場景, 這樣就能直接套用了

使用場景1: 想用項目中已經(jīng)安裝好的某個包, 但是不能直接執(zhí)行(因為沒有全局安裝, 涉及環(huán)境變量的問題)

對于這個場景, 有些笨方法:

  • 到項目的根目錄下執(zhí)行: node-modules/.bin/包對應(yīng)的腳本

  • 配置npm script: 在package.jsonscripts中將方法1添加進腳本, 然后就能在需要的時候執(zhí)行"npm run 自定義指令"以快速執(zhí)行啦, 本質(zhì)上只是對方法1的改進

更優(yōu)雅的方法, 就是使用npx命令啦:

npx <包對應(yīng)的命令>

# 以less編譯為例:
npx lessc -v  # 查看當(dāng)前項目下less編譯器的版本

使用場景2: 已全局安裝某個包, 項目又已安裝了不同版本的某個包, 想用項目的那個版本

以我今晚的踩坑作為第二個使用場景, 我本地已經(jīng)全局安裝了Vue腳手架的@2.x.x版本, 但是我想用并已經(jīng)在本地項目文件目錄中安裝了最新的@4.x.x版本, 即:

# 已經(jīng)執(zhí)行過
npm i -g vue-cli@2
vue -V # vue@2.9.6
# 已經(jīng)執(zhí)行過

cd my-project
npm i -D @vue/cli@4
vue -V # vue-cli@4.5.13

這時, 如果使用vue -V會發(fā)現(xiàn)使用的是全局的版本, 因為npm默認會執(zhí)行全局中的包。如果想使用項目已經(jīng)安裝的那個版本就直接執(zhí)行如下命令:

npx <包對應(yīng)的命令>

# 以vue-cli為例:
npx vue create my-project

使用場景3: 不想全局或在項目中安裝某個包, 只想臨時使用

對于這種場景, npx就是必要的選擇。npx會將要用的下載到一個臨時目錄, 使用完畢后自動刪除, 還是以Vue-Cli為例: 這次的我突發(fā)奇想想看看React腳手架的項目文件結(jié)構(gòu),由于我還沒學(xué), 所以本地和全局都沒有安裝(只是臨時想用腳手架創(chuàng)建一個React項目)

npx create-react-app my-react-project #react腳手架將會在項目搭建完后自動被刪除掉

使用場景4: 臨時使用特定版本的包(本地沒有安裝)

如題所示, 這里以我突發(fā)奇想想使用Vue腳手架的@3.x.x版本, 但是我全局已經(jīng)安裝了@2.x.x版本

cd my-vue-project   # 進入我的vue項目
npx @vue/cli@3 create big-project   # 利用vue-cli的3.x版本創(chuàng)建一個名為big-project的項目

關(guān)于npx的一些參數(shù)

  1. 安裝并使用特定版本: npx 包@版本號 包對應(yīng)的命令

  2. --no-install 強制使用本地包, 本地包如果沒安裝就會報錯: npx --no-install vue create my-project

  3. --ignore-existing 強制安裝使用遠程模塊: npx --ignore-existing vue create my-project

  4. -p 對于一次性安裝多個包,使用參數(shù)-p: npx -p @vue/cli -p less 切記: 安裝多個包一定要使用 -p

  5. -c 在一次性安裝并使用多個包的場景中: 在低版本下執(zhí)行npx -p vue-cli -p less lessc -v & vue -V命令, 有可能只有第一個命令項能正常執(zhí)行, 即:只打印出less編輯器的版本。npx的參數(shù)-c就是為了告訴npx執(zhí)行指定的所有命令的范圍: npx -p vue-cli -p less -c "lessc -v & vue -V", 這樣就能保證絕對的安全了。注: &代表兩個命令都執(zhí)行, |代表前面執(zhí)行成功后面命令就不執(zhí)行

這一小節(jié)中最常用、重要的是第5點, 根據(jù)此總結(jié): 不管安裝的包、命令的個數(shù)個數(shù)是多少(哪怕只安裝1個包), 嚴格遵守npx -p 包1 -p 包2 -p 包n -c "命令1 & 命令2 & 命令n" 一定沒錯

到此,關(guān)于“Node.js中npx命令的用法及使用場景介紹”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識,請繼續(xù)關(guān)注億速云網(wǎng)站,小編會繼續(xù)努力為大家?guī)砀鄬嵱玫奈恼拢?/p>

向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI