中文字幕一区二区人妻电影,亚洲av无码一区二区乱子伦as ,亚洲精品无码永久在线观看,亚洲成aⅴ人片久青草影院按摩,亚洲黑人巨大videos

停止全局安裝軟件包

發(fā)布于:2021-01-15 09:36:38

0

141

0

軟件包 NPM NPX

如今,大多數(shù)前端項(xiàng)目將涉及某種NPM軟件包。有時(shí),在瀏覽這些軟件包的文檔時(shí),我會(huì)看到建議安裝這樣的軟件包。

yarn global add <package>

或像這樣。

npm install --global <package>

在這兩個(gè)示例中,軟件包都是全局安裝的。這意味著您可以<package>從系統(tǒng)上的任何目錄運(yùn)行命令。

這是可行的,但是全局安裝軟件包有一些缺點(diǎn)。

  • 如果您與一組開(kāi)發(fā)人員一起工作,則很難保證每個(gè)人都在運(yùn)行相同的程序包。

  • 全局只能安裝一個(gè)版本。如果您有依賴(lài)于包的不同版本的不同項(xiàng)目,這將導(dǎo)致問(wèn)題。

在本文中,我將向您展示三種不同的方法,您可以使用這些方法來(lái)運(yùn)行軟件包,而不必全局安裝它們。

快速設(shè)置

在本文中,我們將安裝一個(gè)名為Figlet的小型CLI工具,該工具可打印ASCII藝術(shù)文字。創(chuàng)建一個(gè)空目錄并導(dǎo)航到該目錄。然后添加以下package.json文件:

{   "name": "example",   "license": "UNLICENSED",   "dependencies": {     "figlet-cli": "^0.1.0"   } }

運(yùn)行yarn install或npm install(根據(jù)您的喜好)安裝軟件包。

注意:從現(xiàn)在開(kāi)始,yarnandnpm命令完全相同,因此我僅列出yarn版本。

編輯$ PATH

像本地安裝軟件包一樣運(yùn)行本地安裝軟件包的第一種方法是編輯$PATH環(huán)境變量。該$PATH變量告訴您的系統(tǒng)在哪個(gè)目錄中查找可執(zhí)行文件。

Yarn和NPM的便捷功能之一是它們都包含一個(gè).bin目錄,node_modules該目錄中包含指向所有已安裝的可執(zhí)行文件的符號(hào)鏈接。您可以輕松地將此文件夾添加到您的路徑。這里的竅門(mén)是修改您的目錄$PATH以包含本地 node_modules/.bin目錄。這將使您可以運(yùn)行任何本地NPM CLI工具,就好像它是全局安裝的一樣。

首先,您需要確定正在運(yùn)行哪個(gè)shell。為此,您可以在CLI中鍵入以下內(nèi)容。

echo $SHELL

如果您尚未配置自定義外殼,則可能為zsh或bash。如果是bash,請(qǐng)打開(kāi)~/.bash_profile文件。如果是zsh,請(qǐng)打開(kāi)~/.zshenv。如果所需文件不存在,請(qǐng)創(chuàng)建它。

接下來(lái),將以下內(nèi)容添加到底部。請(qǐng)注意,這./node_modules/.bin是相對(duì)路徑。這意味著它將被附加到您當(dāng)前所在的任何目錄中。

export PATH="./node_modules/.bin:$PATH"

就是這樣!重新啟動(dòng)外殼程序,導(dǎo)航到創(chuàng)建的目錄,然后嘗試運(yùn)行figlet。

figlet Aww yeah

你應(yīng)該看到這樣的東西。很整潔的,對(duì)吧?

     _                      __   __         _     / __      ____      __   / /__  __ _| |__    / _   / / /  / / /   V / _ / _` | '_    / ___  V  V /   V  V /    | |  __/ (_| | | | |  /_/   __/_/    _/_/     |_|___|__,_|_| |_|


紗線(xiàn)運(yùn)行工具

接下來(lái)是在中定義命令package.json。要添加命令,您要做的就是添加一個(gè)scripts部分,其中包含您的命令名稱(chēng)和您要運(yùn)行的內(nèi)容。在此示例中,我添加了一個(gè)aww-yeah命令。

{   "name": "example",   "license": "UNLICENSED",   "dependencies": {     "figlet-cli": "^0.1.0"   },   "scripts": {     "aww-yeah": "figlet Aww Yeah"   } }

您可以使用運(yùn)行自定義命令yarn run <command>。大多數(shù)命令也可以縮短為yarn <command>。嘗試一下yarn aww-yeah!

您甚至可以將參數(shù)傳遞給自定義命令。嘗試將ascii下面列出的命令添加到 scripts并運(yùn)行yarn ascii Aww Yeah。

"scripts": {   "aww-yeah": "figlet Aww Yeah",   "ascii": "figlet" }

這是一個(gè)真實(shí)的例子。我是ESLint和Jest的忠實(shí)擁護(hù)者。我的幾乎所有項(xiàng)目都在其中定義了這些命令。

"scripts": {   "lint": "eslint --max-warnings=0 .",   "test": "jest" }

這很棒,因?yàn)槲液臀业膱F(tuán)隊(duì)都可以共享這些命令。它們也是自我記錄的,因此,如果某人是某個(gè)軟件包的新手,他們可以瀏覽一下package.json以查看可用的命令。

NPX

最后,我們有NPX,它是NPM的打包程序。這個(gè)方便的工具使您可以運(yùn)行CLI命令,而無(wú)需在本地安裝軟件包。這對(duì)于只需要運(yùn)行一次的工具(例如生成器)非常有用。

如果已安裝Node.js,則可能已在您的計(jì)算機(jī)上安裝了NPX。如果沒(méi)有,您可以使用進(jìn)行全局安裝yarn global add npx。

讓我們?cè)囈幌耭iglet。

npx figlet Aww Yeah

那不是那么容易嗎?

有時(shí),您會(huì)遇到NPX不知道如何查找的命令。我的Yeoman Generators存儲(chǔ)庫(kù)就是一個(gè)例子。在這種情況下,您需要通過(guò)-p標(biāo)記來(lái)告訴NPX哪個(gè)程序包顯式運(yùn)行。

npx -p yo -p @landonschropp/generator-eslint yo @landonschropp/eslint

全部完成!

這就是結(jié)果?,F(xiàn)在,你可以在本地安裝任何NPM模塊,并像運(yùn)行全局模塊一樣運(yùn)行該命令。我個(gè)人經(jīng)常使用這三種方法。我希望你會(huì)發(fā)現(xiàn)它們像我一樣有用!