国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

包管理工具詳解npm、yarn、cnpm、npx、pnpm

這篇具有很好參考價(jià)值的文章主要介紹了包管理工具詳解npm、yarn、cnpm、npx、pnpm。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

目錄:

1 npm包管理工具

2 package配置文件

3 npm install原理

4 yarn、cnpm、npx

5 發(fā)布自己的開(kāi)發(fā)包

6 pnpm使用和原理

當(dāng)我們使用npm install xxxx 的時(shí)候會(huì)添加一個(gè)node_module和2個(gè)json文件:

包管理工具詳解npm、yarn、cnpm、npx、pnpm? ? ?包管理工具詳解npm、yarn、cnpm、npx、pnpm

package.json是配置信息文件,

? 這個(gè)配置文件會(huì)記錄著你項(xiàng)目的名稱(chēng)、版本號(hào)項(xiàng)目描述等;

? 也會(huì)記錄著你項(xiàng)目所依賴(lài)的其他庫(kù)的信息依賴(lài)庫(kù)的版本號(hào)

包管理工具詳解npm、yarn、cnpm、npx、pnpm包管理工具詳解npm、yarn、cnpm、npx、pnpm

這個(gè)文件我們一般不直接自己創(chuàng)建,一般是通過(guò)dos目錄輸入 npm init來(lái)手動(dòng)配置,還可以通過(guò) npm init -y 來(lái)快速生成默認(rèn)的配置信息文件。通過(guò)腳手架創(chuàng)建的項(xiàng)目也是自帶了package.json文件的。

包管理工具詳解npm、yarn、cnpm、npx、pnpm

package.json文件屬性main

是指向模塊的入口文件的,很多文件入口文件是index.js,在node執(zhí)行require('文件名稱(chēng)')不加inde.js也自動(dòng)會(huì)找到index.js。但是如果入口文件不叫index.js,那require('文件名稱(chēng)')就找不到入口文件了,于是,如果你這個(gè)模塊文件夾有package.json文件的話,可以配置main來(lái)指定模塊入口文件,以后其他地方使用require('文件名稱(chēng)')就不會(huì)出現(xiàn)找不到入口文件的情況了。

包管理工具詳解npm、yarn、cnpm、npx、pnpm

?比如dayjs的入口文件就不是index.js

包管理工具詳解npm、yarn、cnpm、npx、pnpm

package.json文件屬性script

可以用來(lái)簡(jiǎn)化執(zhí)行命令的,比如本來(lái)需要執(zhí)行命令node xxx.js? ,通過(guò)使用script事先寫(xiě)好的命令,我們就可以直接寫(xiě)成npm run? xxx 就可以簡(jiǎn)化了。

包管理工具詳解npm、yarn、cnpm、npx、pnpm

package.json文件屬性dependencies:

dependencies是用來(lái)記錄開(kāi)發(fā)環(huán)境和生產(chǎn)環(huán)境都需要使用的模塊的

當(dāng)項(xiàng)目要發(fā)送給別人使用的時(shí)候,一般會(huì)把項(xiàng)目的node_modules文件夾刪除掉來(lái)減小項(xiàng)目的內(nèi)存大小。但是項(xiàng)目又依賴(lài)這些模塊,別人只需要通過(guò)命令? npm install? 自動(dòng)下載這些依賴(lài)的模塊就好了。

如果是開(kāi)發(fā)時(shí)候才需要用到的模塊,我們安裝的時(shí)候是通過(guò)npm install xxx? --save-dev?? 或者?npm install xxx? -D ? 來(lái)存放到devDependencies里的。

命令npm install xxx? --save和npm install xxx? 是會(huì)記錄到dependencies里的

包管理工具詳解npm、yarn、cnpm、npx、pnpm

package.json文件屬性devDependencies屬性:

devDependencies和dependencies的企業(yè)別就是dependencies是用來(lái)記錄開(kāi)發(fā)環(huán)境和生產(chǎn)環(huán)境都需要使用的模塊的;而devDependencies主要是用來(lái)記錄開(kāi)發(fā)環(huán)境下需要的模塊的。

比如下圖的vue和dayjs就會(huì)放到dependencies里,webpack和babel等就是放到devDependencies里。

如果是開(kāi)發(fā)時(shí)候才需要用到的模塊,我們安裝的時(shí)候是通過(guò)npm install xxx? --save-dev? 或者?npm install xxx? -D 來(lái)存放到devDependencies里的。

命令npm install xxx? --save和npm install xxx? 是會(huì)記錄到dependencies里的

包管理工具詳解npm、yarn、cnpm、npx、pnpm

包管理工具詳解npm、yarn、cnpm、npx、pnpm

包管理工具詳解npm、yarn、cnpm、npx、pnpm

?包管理工具詳解npm、yarn、cnpm、npx、pnpm

package.json文件屬性peerDependencies屬性屬性:

有些模塊必須需要其他模塊作為前提才能使用,這個(gè)時(shí)候在那個(gè)模塊的packag.json文件里面的peerDependencies會(huì)有標(biāo)注。比如element-plus使用的前提就是需要有vue。

包管理工具詳解npm、yarn、cnpm、npx、pnpm

依賴(lài)的版本管理:

包管理工具詳解npm、yarn、cnpm、npx、pnpm

?????包管理工具詳解npm、yarn、cnpm、npx、pnpm

關(guān)于npm install 命令細(xì)節(jié):

項(xiàng)目(局部)安裝(local install)是進(jìn)入到項(xiàng)目或者文件夾內(nèi)時(shí)使用npm install xxx 來(lái)安裝的。

全局安裝(global install)是會(huì)把安裝的內(nèi)容放到一個(gè)由node管理的目錄,這個(gè)目錄有在電腦的環(huán)境變量里面,同時(shí)會(huì)在電腦的環(huán)境變量里面有這樣的命令可以執(zhí)行。比如安裝webpack可以通過(guò)npm install webpack -g 。此后可以在電腦的任何文件夾內(nèi)使用:

webpack xxx.js? 的命令。

注意:不是所有包都需要全局安裝,一般都是工具包才需要全局安裝(yarn、webpack等)。

基本知識(shí)看后面ppt內(nèi)容

項(xiàng)目在開(kāi)發(fā)的時(shí)候,安裝包的時(shí)候,命令要使用正確:

包管理工具詳解npm、yarn、cnpm、npx、pnpm

首先是npm 下載重復(fù)的包的時(shí)候,會(huì)查看之前是否有緩存該包。?

package.json里面記錄的都是比較寬松的版本。比如,在項(xiàng)目使用的包在自己手里可能是0.25.3的版本,但是項(xiàng)目給其他人的時(shí)候,通過(guò)npm install 安裝依賴(lài)之后可能會(huì)是2.25.3的版本。這個(gè)時(shí)候就可能出現(xiàn)不能正常使用某些功能了。所以,我們需要使用package-lock.json文件來(lái)確定死每一個(gè)包版本。這些包我們一般不手動(dòng)管理,全靠他們自動(dòng)化生成。

包管理工具詳解npm、yarn、cnpm、npx、pnpm

下圖是npm install xxx 的工作流程:

包管理工具詳解npm、yarn、cnpm、npx、pnpm

npm其他命令:

包管理工具詳解npm、yarn、cnpm、npx、pnpm

想要使用yard就從npm下載:

npm install yard -g

下載包使用npm的時(shí)候我們可以設(shè)置默認(rèn)鏈接淘寶鏡像源來(lái)下載包,有個(gè)缺點(diǎn)就npm以后默認(rèn)去淘寶鏡像源去下載包了,然后我們可以在下載一個(gè)cnpm(npm的鏡像),然后修改cnpm下載包的路徑為淘寶鏡像源就好了。

包管理工具詳解npm、yarn、cnpm、npx、pnpm

?包管理工具詳解npm、yarn、cnpm、npx、pnpm

npx的目的的早期為了局部使用node_modules里面的webpack的,如果不使用npx的話用于打包項(xiàng)目的webpack會(huì)從電腦環(huán)境變量里面獲取。(存在的問(wèn)題是局部的webpack可能和全局的webpack版本可能不一樣)

在npm發(fā)布自己的包:

把你的項(xiàng)目發(fā)送到npm的包管理庫(kù)里面的方法是

(1)在npm官網(wǎng)先注冊(cè)一個(gè)賬號(hào)

(2)在你的項(xiàng)目根目錄的dos命令提示符登錄npm賬號(hào)

npm login

(3)在項(xiàng)目根目錄創(chuàng)建package.json文件

npm init -y

(4)發(fā)送項(xiàng)目文件

npm publish

包管理工具詳解npm、yarn、cnpm、npx、pnpm最好是有一個(gè)index來(lái)統(tǒng)一導(dǎo)出某些功能,package.json也是比較重要。

如何正常使用下載好的包?(指的是使用node xxx.js命令直接執(zhí)行某個(gè)js文件的問(wèn)題)(這種情況是在原生的文件里面想要使用,不是在vue和react腳手架創(chuàng)建的項(xiàng)目里面使用)

報(bào)錯(cuò)問(wèn)題:

上面步驟我們上傳的包在其他js文件里面需要使用的時(shí)候,通過(guò)以下兩種方式會(huì)報(bào)錯(cuò):

導(dǎo)出的文件是es6的模塊化

包管理工具詳解npm、yarn、cnpm、npx、pnpm

?導(dǎo)入的方式是commonjs,然后想要使用node main.js (報(bào)錯(cuò))

包管理工具詳解npm、yarn、cnpm、npx、pnpm

?想要使用es6來(lái)導(dǎo)入,然后繼續(xù)執(zhí)行node main.js時(shí)報(bào)錯(cuò)

包管理工具詳解npm、yarn、cnpm、npx、pnpm

解決辦法:

(1)可以通過(guò)瀏覽器加載

(2)使用webpack來(lái)加載

在項(xiàng)目根目錄npm下載webpack

npm install webpack webpack-cli -D

然后在項(xiàng)目根目錄執(zhí)行npx webpack 打包出一個(gè)dist的文件夾

npx webpack

最后一步是創(chuàng)建一個(gè)一個(gè)html文件,使用script標(biāo)簽把dist目錄下的main.js文件導(dǎo)入,點(diǎn)擊打開(kāi)html文件就能正常使用了。

包管理工具詳解npm、yarn、cnpm、npx、pnpm

如何更新上傳的項(xiàng)目的版本?

在package.js文件中更改版本號(hào),然后再登錄npm,通過(guò)npm publish來(lái)上傳就好了,

pnpm為我們解決了處理以往創(chuàng)建的很多的項(xiàng)目(節(jié)省磁盤(pán))。

硬連接和軟連接:

硬連接可以實(shí)現(xiàn)多個(gè)文件對(duì)應(yīng)的數(shù)據(jù)是同一個(gè)文件,被指向的那個(gè)文件修改之后,指向這個(gè)文件的所有文件都會(huì)改變。就像編程里面的對(duì)象類(lèi)型。

軟連接可以連接為快捷方式,這個(gè)只是知道原本文件的位置去打開(kāi)那個(gè)文件,一旦那個(gè)文件改變名稱(chēng)或者移動(dòng)刪除就打不開(kāi)了。

pnpm實(shí)現(xiàn)的是多個(gè)項(xiàng)目如果下載的同一個(gè)包在磁盤(pán)里面存在,則直接建立硬連接,就不再下載一個(gè)在磁盤(pán)中了,所以節(jié)省磁盤(pán)。而其他的包管理器則相反,每個(gè)項(xiàng)目下載相同的包的時(shí)候就會(huì)再次下載包,磁盤(pán)中會(huì)有重復(fù)的包。

包管理工具詳解npm、yarn、cnpm、npx、pnpm

包管理工具詳解npm、yarn、cnpm、npx、pnpm

?

包管理工具詳解npm、yarn、cnpm、npx、pnpm

?

pnpm下載的包都是非扁平化的。

其他的包管理器下載一個(gè)包的時(shí)候可能會(huì)下載多個(gè)依賴(lài)包,并且這些依賴(lài)包只會(huì)放在下載的那個(gè)包里面。當(dāng)我們確實(shí)需要某個(gè)包的時(shí)候,如果在上述的包刪除時(shí),依賴(lài)包也會(huì)被刪除。

pnpm下載一個(gè)包的時(shí)候,依賴(lài)包也會(huì)放到node_modules文件夾里面,而不是放到那個(gè)包底下。

如何使用pnpm?

下載pnpm

npm install -g pnpm

pnpm也可以創(chuàng)建一個(gè)package.json文件

pnpm init

安裝一個(gè)包

包管理工具詳解npm、yarn、cnpm、npx、pnpm

?

下載后的包存放在哪里了?

下圖的axios包的又邊有個(gè)右箭頭(包管理工具詳解npm、yarn、cnpm、npx、pnpm這個(gè)文件是軟連接的,相當(dāng)于快捷鍵指向真實(shí)文件)

包管理工具詳解npm、yarn、cnpm、npx、pnpm

?

真正的axios包放在了.pnpm文件里面的axios\node_modules里面了

包管理工具詳解npm、yarn、cnpm、npx、pnpm

?包管理工具詳解npm、yarn、cnpm、npx、pnpm

?

包管理工具詳解npm、yarn、cnpm、npx、pnpm

?包管理工具詳解npm、yarn、cnpm、npx、pnpm

?

1

包管理工具詳解npm、yarn、cnpm、npx、pnpm

包管理工具詳解npm、yarn、cnpm、npx、pnpm?包管理工具詳解npm、yarn、cnpm、npx、pnpm

?包管理工具詳解npm、yarn、cnpm、npx、pnpm

?包管理工具詳解npm、yarn、cnpm、npx、pnpm

?包管理工具詳解npm、yarn、cnpm、npx、pnpm

?包管理工具詳解npm、yarn、cnpm、npx、pnpm

?包管理工具詳解npm、yarn、cnpm、npx、pnpm

?包管理工具詳解npm、yarn、cnpm、npx、pnpm

?包管理工具詳解npm、yarn、cnpm、npx、pnpm

?包管理工具詳解npm、yarn、cnpm、npx、pnpm

?包管理工具詳解npm、yarn、cnpm、npx、pnpm

?包管理工具詳解npm、yarn、cnpm、npx、pnpm

?包管理工具詳解npm、yarn、cnpm、npx、pnpm

?包管理工具詳解npm、yarn、cnpm、npx、pnpm

?包管理工具詳解npm、yarn、cnpm、npx、pnpm

包管理工具詳解npm、yarn、cnpm、npx、pnpm?包管理工具詳解npm、yarn、cnpm、npx、pnpm

?包管理工具詳解npm、yarn、cnpm、npx、pnpm

?包管理工具詳解npm、yarn、cnpm、npx、pnpm

?包管理工具詳解npm、yarn、cnpm、npx、pnpm

?包管理工具詳解npm、yarn、cnpm、npx、pnpm

?包管理工具詳解npm、yarn、cnpm、npx、pnpm

?包管理工具詳解npm、yarn、cnpm、npx、pnpm

?包管理工具詳解npm、yarn、cnpm、npx、pnpm

?包管理工具詳解npm、yarn、cnpm、npx、pnpm

?包管理工具詳解npm、yarn、cnpm、npx、pnpm文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-462186.html

到了這里,關(guān)于包管理工具詳解npm、yarn、cnpm、npx、pnpm的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶(hù)投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 記錄--npm, npx, cnpm, yarn, pnpm梭哈

    記錄--npm, npx, cnpm, yarn, pnpm梭哈

    依賴(lài)管理解決了在軟件開(kāi)發(fā)過(guò)程中管理和協(xié)調(diào)各種依賴(lài)項(xiàng)的問(wèn)題,簡(jiǎn)化了開(kāi)發(fā)流程,提高了項(xiàng)目的可靠性、可維護(hù)性和可重復(fù)性。它們幫助開(kāi)發(fā)人員更高效地管理項(xiàng)目的依賴(lài)關(guān)系,減少了潛在的錯(cuò)誤和沖突,并提供了更好的開(kāi)發(fā)體驗(yàn)。 在 JavaScript 生態(tài)系統(tǒng)中,有多種工具可用

    2024年01月22日
    瀏覽(65)
  • 前端命令npm 、 cnpm、 pnpm、yarn 、 npx、nvm的區(qū)別

    大名鼎鼎的 npm (Node Package Manager)是隨同NodeJS一起安裝的包管理工具,NPM本身也是Node.js的一個(gè)模塊。 npm的含義有兩層: npm服務(wù)器,npm服務(wù)器網(wǎng)址為https://www.npmjs.org,npm是 Node 包的標(biāo)準(zhǔn)發(fā)布平臺(tái),用于 Node 包的發(fā)布、傳播; npm包管理器,指在命令行窗口或終端使用npm命令來(lái)管理

    2024年02月11日
    瀏覽(57)
  • 包管理工具那么多,怎么選?npm、yarn 和 pnpm 三者比較及使用詳解!

    在 Vue 項(xiàng)目中,我們需要使用許多第三方依賴(lài)庫(kù),如 Vue Router、Vuex、Axios、Element UI 等等。這些依賴(lài)庫(kù)通常以 NPM 包的形式提供,而且在使用時(shí)需要進(jìn)行版本管理。因此,我們需要使用一個(gè)包管理工具來(lái)統(tǒng)一管理這些依賴(lài)庫(kù),避免版本沖突和管理繁瑣。 常見(jiàn)的 Vue 項(xiàng)目包管理工

    2024年02月07日
    瀏覽(116)
  • npx和npm有什么區(qū)別,包管理器yarn的使用方法,node的版本管理工具nvm使用方法

    一、npx介紹及使用 平時(shí)安裝node模塊的時(shí)候,經(jīng)常使用的命令是npm。其實(shí)還有另外一個(gè)命令,叫做npx。網(wǎng)上的說(shuō)法都是:npx是npm命令的升級(jí)版本,功能非常強(qiáng)大。 1、npx 是什么 npx是一個(gè)由Node.js官方提供的用于快速執(zhí)行npm包中的可執(zhí)行文件的工具。它可以幫助我們?cè)诓蝗职惭b

    2024年01月16日
    瀏覽(34)
  • 前端包管理器的工具,npm和Yarn以及pnpm是最常用的

    ?? 點(diǎn)贊,你的認(rèn)可是我創(chuàng)作的動(dòng)力! ?? 收藏,你的青睞是我努力的方向! ?? 評(píng)論,你的意見(jiàn)是我進(jìn)步的財(cái)富! 前端包管理器是用于管理前端項(xiàng)目依賴(lài)項(xiàng)(如庫(kù)、框架和工具)的工具。它們有助于確保項(xiàng)目的依賴(lài)項(xiàng)始終保持最新、可維護(hù)和可復(fù)制。以下是一些常用的前

    2024年02月07日
    瀏覽(27)
  • “yarn“、“npm“、“cnpm“和“pnpm“的區(qū)別

    npm(Node Package Manager)是Node.js的默認(rèn)包管理器。它是一個(gè)全球最大的開(kāi)源軟件注冊(cè)表,擁有數(shù)量龐大的包供開(kāi)發(fā)者使用。npm具有廣泛的生態(tài)系統(tǒng)和大量的社區(qū)支持。 軟件包數(shù)量龐大,幾乎包含了所有常見(jiàn)的開(kāi)源庫(kù)和工具。 社區(qū)活躍,有大量的文檔、教程和支持。 可以方便地

    2024年02月11日
    瀏覽(38)
  • 統(tǒng)一使用某一個(gè)包管理工具,比如yarn pnpm

    統(tǒng)一使用某一個(gè)包管理工具,比如yarn pnpm

    原因:前端每個(gè)人的習(xí)性不一樣,有人用npm 有人用yarn等包管理工具,混合下載插件容易出bug,就用個(gè)小工具鎖住就行了,只能使用yarn或者pnpm反向下載依賴(lài)和下載插件。不然就報(bào)錯(cuò) 改為pnpm的例子,就把yarn改為pnpm就可以了 if (!/ pnpm /.test(process.env.npm_execpath || \\\'\\\')) { 在scripts下添

    2024年02月10日
    瀏覽(20)
  • npm yarn pnpm npx nvm 命令怎么區(qū)分怎么用

    npm yarn pnpm npx nvm 命令怎么區(qū)分怎么用

    參數(shù) - install:安裝一個(gè)或多個(gè)包。例如:npm install 。 uninstall:卸載一個(gè)包。例如:npm uninstall 。 update:更新一個(gè)或多個(gè)包的版本。例如:npm update 。 list:列出當(dāng)前項(xiàng)目中已安裝的包。例如:npm list。 init:初始化一個(gè)新的 npm 項(xiàng)目。例如:npm init。 run:運(yùn)行指定的 npm 腳本。

    2024年02月11日
    瀏覽(25)
  • 包管理工具npm和Yarn的區(qū)別,我們?cè)撊绾芜x擇?

    包管理工具npm和Yarn的區(qū)別,我們?cè)撊绾芜x擇?

    好家伙,學(xué)習(xí)新工具? ? 關(guān)于npm我們已經(jīng)知道了,這是我們項(xiàng)目的包管理器, 我們現(xiàn)在用的無(wú)比順手的工具,都是在無(wú)數(shù)的競(jìng)爭(zhēng)中殺出來(lái)的,他們淘汰了無(wú)數(shù)的產(chǎn)品 ? 首先,倘若我們不使用npm,那么我們應(yīng)該如何去新建一個(gè)前端項(xiàng)目? 純手工,把我們項(xiàng)目需要的項(xiàng)目一個(gè)個(gè)下載到我們的

    2024年02月17日
    瀏覽(23)
  • 【前端筆記】前端包管理工具和構(gòu)建打包工具介紹之npm、yarn、webpack、vite

    NPM(Node Package Manager)是node包管理器,是node.js默認(rèn)采用的軟件包管理系統(tǒng),使用JavaScript語(yǔ)言編寫(xiě)。包管理可以理解為依賴(lài)管理,有一個(gè)npm包管理倉(cāng)庫(kù),當(dāng)我們執(zhí)行npm命令的時(shí)候,就可以直接從npm倉(cāng)庫(kù)中下載對(duì)應(yīng)的依賴(lài)包,類(lèi)似于后端開(kāi)發(fā)中的POM。 node.js中就已經(jīng)安裝了NPM,所

    2024年02月02日
    瀏覽(36)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包