yarn:
? yarn是由Facebook(react)、Google、Exponent 和 Tilde 聯(lián)合推出了一個(gè)新的 JS 包管理工具;
? yarn 是為了彌補(bǔ)早期npm 的一些缺陷而出現(xiàn)的;
? 早期的npm存在很多的缺陷,比如安裝依賴速度很慢、版本依賴混亂等等一系列的問(wèn)題;
? 雖然從npm5版本開(kāi)始,進(jìn)行了很多的升級(jí)和改進(jìn),但是依然很多人喜歡使用yarn;
-g安裝后,進(jìn)行全局的環(huán)境配置,Windows的終端也可以使用
?
?添加腳本:yarn/npm run build?
c(china)npm
? 由于一些特殊的原因,某些情況下我們沒(méi)辦法很好的從 https://registry.npmjs.org下載下來(lái)一些需要的包。
? 查看npm鏡像:
npm config get registry # npm config get registry
? 我們可以直接設(shè)置npm的鏡像:
npm config set registry https://registry.npm.taobao.org
? 但是對(duì)于大多數(shù)人來(lái)說(shuō),并不希望將npm鏡像修改了:
? 第一,不太希望隨意修改npm原本從官方下來(lái)包的渠道;
? 第二,擔(dān)心某天淘寶的鏡像掛了或者不維護(hù)了,又要改來(lái)改去;
? 這個(gè)時(shí)候,我們可以使用cnpm,并且將cnpm設(shè)置為淘寶的鏡像:
npm install -g cnpm --registry=https://registry.npm.taobao.org
cnpm config get registry # https://r.npm.taobao.org/
npm
? npx是npm5.2之后自帶的一個(gè)命令。
? npx的作用非常多,但是比較常見(jiàn)的是使用它來(lái)調(diào)用項(xiàng)目中的某個(gè)模塊的指令。
? 我們以webpack為例:
? 全局安裝的是webpack5.1.3
? 項(xiàng)目安裝的是webpack3.6.0
? 在終端執(zhí)行 webpack --version使用的是哪一個(gè)命令呢?
? 顯示結(jié)果會(huì)是 webpack 5.1.3,事實(shí)上使用的是全局的,為什么呢?
? 原因非常簡(jiǎn)單,在當(dāng)前目錄下找不到webpack時(shí),就會(huì)去全局找,并且執(zhí)行命令;
? 那么如何使用項(xiàng)目(局部)的webpack,常見(jiàn)的是兩種方式:
? 方式一:明確查找到node_module下面的webpack
./node_modules/.bin/webpack --version
? 方式二:在 scripts定義腳本,來(lái)執(zhí)行webpack;
? 方式一:在終端中使用如下命令(在項(xiàng)目根目錄下)
? 方式二:修改package.json中的scripts
"scripts": {
"webpack": "webpack --version"
}
? 方式三:使用npx
npx webpack --version
? npx的原理非常簡(jiǎn)單,它會(huì)到當(dāng)前目錄的node_modules/.bin目錄下查找對(duì)應(yīng)的命令;
局部命令的執(zhí)行
?pnpm
?? 當(dāng)使用 npm 或 Yarn 時(shí),如果你有 100 個(gè)項(xiàng)目,并且所有項(xiàng)目都有一個(gè)相同的依賴包,那么, 你在硬盤上就需要保存 100 份該相同依賴包的副本。
? 如果是使用 pnpm,依賴包將被 存放在一個(gè)統(tǒng)一的位置,因此:
? 如果你對(duì)同一依賴包使用相同的版本,那么磁盤上只有這個(gè)依賴包的一份文件;
? 如果你對(duì)同一依賴包需要使用不同的版本,則僅有 版本之間不同的文件會(huì)被存儲(chǔ)起來(lái);
? 所有文件都保存在硬盤上的統(tǒng)一的位置:
? 當(dāng)安裝軟件包時(shí), 其包含的所有文件都會(huì)硬鏈接到此位置,而不會(huì)占用 額外的硬盤空間;
? 這讓你可以在項(xiàng)目之間方便地共享相同版本的 依賴包;
? 當(dāng)使用 npm 或 Yarn Classic 安裝依賴包時(shí),所有軟件包都將被提升到 node_modules 的 根目錄下。
? 其結(jié)果是,源碼可以訪問(wèn)本不屬于當(dāng)前項(xiàng)目所設(shè)定的依賴包,可能訪問(wèn)依賴項(xiàng)的依賴項(xiàng)
pnpm創(chuàng)建非扁平的 node_modules 目錄
?
文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-557557.html
?文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-557557.html
到了這里,關(guān)于包管理工具:npm、yarn、cnpm、npx、pnpm的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!