npx詳細(xì)使用

前幾天接觸到了npx牺荠,發(fā)現(xiàn)這個(gè)命令非常好用翁巍,這里總結(jié)下npx的使用。

npx是什么休雌?


npx是npm5.2之后發(fā)布的一個(gè)命令灶壶。官網(wǎng)說(shuō)它是“execute npm package binaries”,就是執(zhí)行npm依賴包的二進(jìn)制文件杈曲,簡(jiǎn)而言之例朱,就是我們可以使用npx來(lái)執(zhí)行各種命令。
npx官網(wǎng):https://www.npmjs.com/package/npx

為什么要使用npx鱼蝉?


解決的問(wèn)題

在命令行執(zhí)行本地已安裝的依賴包命令

使用npx可以在命令行直接執(zhí)行本地已安裝的依賴包命令洒嗤,不用在scripts腳本寫入命令,也不用麻煩的去找本地腳本魁亦。

首先來(lái)看這個(gè)場(chǎng)景:
我們本地安裝了一個(gè)依賴包:

npm i -D mocha

想要在本地(當(dāng)前目錄)執(zhí)行它時(shí)渔隶,什么都不做時(shí)是不能運(yùn)行這個(gè)命令的:


image.png

我們一般會(huì)使用幾種方式來(lái)運(yùn)行我們想要運(yùn)行的命令:

  1. 使用package.json的scripts腳本
//package.json
"scripts": {
  "findmocha": "mocha --version",
}

然后在命令行運(yùn)行:

npm run findmocha
image.png
  1. 在命令行中直接找到模塊的二進(jìn)制文件運(yùn)行
  2. 全局安裝模塊

而使用npx,我們可以直接在命令行執(zhí)行我們要運(yùn)行的命令:

npm i -D mocha
npx mocha --version
image.png

不用全局安裝洁奈,直接在命令行執(zhí)行一次性命令

有很多命令间唉,我們只需要執(zhí)行一次的,但是卻要全局安裝一次利术,實(shí)在不科學(xué)呈野,使用npx,可以在不全局安裝依賴包的情況下印叁,運(yùn)行命令被冒,而且運(yùn)行后不會(huì)污染全局環(huán)境

比如

npx create-react-app my-react-app

npx 將create-react-app下載到一個(gè)臨時(shí)目錄,使用以后再刪除轮蜕。
每次運(yùn)行這個(gè)命令昨悼,都會(huì)重新下載依賴包,運(yùn)行后刪除跃洛。

切換node版本來(lái)運(yùn)行命令

當(dāng)你想要運(yùn)行的命令不兼容當(dāng)前的nodejs版本率触,可以通過(guò)npx來(lái)切換版本,指定某個(gè)版本的 Node 來(lái)運(yùn)行命令汇竭。

npx的-p選項(xiàng)指定要安裝的包葱蝗,并將其添加到正在運(yùn)行的$PATH中
如:

 npx node@6 -v
 npx node@7 -v
 npx node@8 -v

以上的命令,會(huì)自動(dòng)下載需要的node细燎,執(zhí)行完命令后刪除两曼。

npx的原理

npx的原理,就是在運(yùn)行它時(shí)找颓,執(zhí)行下列流程:

  1. node_modules/.bin路徑檢查npx后的命令是否存在合愈,找到之后執(zhí)行叮贩;
  2. 找不到击狮,就去環(huán)境變量$PATH里面佛析,檢查npx后的命令是否存在,找到之后執(zhí)行;
  3. 還是找不到彪蓬,自動(dòng)下載一個(gè)臨時(shí)的依賴包最新版本在一個(gè)臨時(shí)目錄,然后再運(yùn)行命令,運(yùn)行完之后刪除庐氮,不污染全局環(huán)境薪夕。

安裝和參數(shù)說(shuō)明


安裝

npm install -g npx

常用參數(shù)

-p 參數(shù)

-p參數(shù)用于指定 npx 所要安裝的模塊

npx -p node@6 node -v

--no-install 參數(shù)

強(qiáng)制使用本地模塊,不下載遠(yuǎn)程模塊酷誓,如果本地不存在該模塊披坏,就會(huì)報(bào)錯(cuò)。

--ignore-existing 參數(shù)

忽略本地的同名模塊盐数,強(qiáng)制安裝使用遠(yuǎn)程模塊

使用場(chǎng)景總結(jié)

使用npx執(zhí)行 本地命令

npm i -D mocha
npx mocha --version

使用npx一次性執(zhí)行命令

npx create-react-app my-react-app

使用npx切換node版本

 npx node@6 -v

使用npx執(zhí)行 GitHub 源碼

npx github:piuccio/cowsay

遠(yuǎn)程代碼必須是一個(gè)模塊棒拂,即必須包含package.json和入口腳本

使用npx開啟一個(gè)靜態(tài)服務(wù)器

npx http-server    #默認(rèn)返回根目錄下index.html
npx http-server -p 3000  #指定端口

參考鏈接:
https://www.npmjs.com/package/npx
http://www.ruanyifeng.com/blog/2019/02/npx.html
http://www.reibang.com/p/a4d2d14f4c0e

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市玫氢,隨后出現(xiàn)的幾起案子帚屉,更是在濱河造成了極大的恐慌,老刑警劉巖漾峡,帶你破解...
    沈念sama閱讀 206,214評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件攻旦,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡生逸,警方通過(guò)查閱死者的電腦和手機(jī)牢屋,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,307評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)槽袄,“玉大人伟阔,你說(shuō)我怎么就攤上這事£欤” “怎么了皱炉?”我有些...
    開封第一講書人閱讀 152,543評(píng)論 0 341
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)狮鸭。 經(jīng)常有香客問(wèn)我合搅,道長(zhǎng),這世上最難降的妖魔是什么歧蕉? 我笑而不...
    開封第一講書人閱讀 55,221評(píng)論 1 279
  • 正文 為了忘掉前任灾部,我火速辦了婚禮,結(jié)果婚禮上惯退,老公的妹妹穿的比我還像新娘赌髓。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,224評(píng)論 5 371
  • 文/花漫 我一把揭開白布锁蠕。 她就那樣靜靜地躺著夷野,像睡著了一般。 火紅的嫁衣襯著肌膚如雪荣倾。 梳的紋絲不亂的頭發(fā)上悯搔,一...
    開封第一講書人閱讀 49,007評(píng)論 1 284
  • 那天,我揣著相機(jī)與錄音舌仍,去河邊找鬼妒貌。 笑死,一個(gè)胖子當(dāng)著我的面吹牛铸豁,可吹牛的內(nèi)容都是我干的灌曙。 我是一名探鬼主播,決...
    沈念sama閱讀 38,313評(píng)論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼节芥,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼平匈!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起藏古,我...
    開封第一講書人閱讀 36,956評(píng)論 0 259
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤增炭,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后拧晕,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體隙姿,經(jīng)...
    沈念sama閱讀 43,441評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,925評(píng)論 2 323
  • 正文 我和宋清朗相戀三年厂捞,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了输玷。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,018評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡靡馁,死狀恐怖欲鹏,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情臭墨,我是刑警寧澤赔嚎,帶...
    沈念sama閱讀 33,685評(píng)論 4 322
  • 正文 年R本政府宣布,位于F島的核電站胧弛,受9級(jí)特大地震影響尤误,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜结缚,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,234評(píng)論 3 307
  • 文/蒙蒙 一损晤、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧红竭,春花似錦尤勋、人聲如沸喘落。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,240評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)瘦棋。三九已至,卻和暖如春锌奴,著一層夾襖步出監(jiān)牢的瞬間兽狭,已是汗流浹背憾股。 一陣腳步聲響...
    開封第一講書人閱讀 31,464評(píng)論 1 261
  • 我被黑心中介騙來(lái)泰國(guó)打工鹿蜀, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人服球。 一個(gè)月前我還...
    沈念sama閱讀 45,467評(píng)論 2 352
  • 正文 我出身青樓茴恰,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親斩熊。 傳聞我的和親對(duì)象是個(gè)殘疾皇子往枣,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,762評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容