中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁(yè) > news >正文

品牌設(shè)計(jì)公司簡(jiǎn)介廣東seo網(wǎng)絡(luò)培訓(xùn)

品牌設(shè)計(jì)公司簡(jiǎn)介,廣東seo網(wǎng)絡(luò)培訓(xùn),貴陽(yáng)h5網(wǎng)站建設(shè),網(wǎng)站做seo推廣一、簡(jiǎn)介 CommonJS 的出現(xiàn),使 node 環(huán)境下的 JS 代碼可以用模塊更加細(xì)粒度的劃分。一個(gè)類(lèi)、一個(gè)函數(shù)、一個(gè)對(duì)象、一個(gè)配置等等均可以作為模塊,這種細(xì)粒度的劃分,是開(kāi)發(fā)大型應(yīng)用的基石。 為了解決在開(kāi)發(fā)過(guò)程中遇到的常見(jiàn)問(wèn)題,比如…

一、簡(jiǎn)介

CommonJS 的出現(xiàn),使 node 環(huán)境下的 JS 代碼可以用模塊更加細(xì)粒度的劃分。一個(gè)類(lèi)、一個(gè)函數(shù)、一個(gè)對(duì)象、一個(gè)配置等等均可以作為模塊,這種細(xì)粒度的劃分,是開(kāi)發(fā)大型應(yīng)用的基石。

為了解決在開(kāi)發(fā)過(guò)程中遇到的常見(jiàn)問(wèn)題,比如加密、提供常見(jiàn)的工具方法、模擬數(shù)據(jù)等等,一時(shí)間,在前端社區(qū)涌現(xiàn)了大量的第三方庫(kù)。這些庫(kù)使用 CommonJS 標(biāo)準(zhǔn)書(shū)寫(xiě)而成,非常容易使用。

這些庫(kù)通常以NPM包的形式提供依賴(lài),而且在使用時(shí)需要進(jìn)行版本管理。因此需要一個(gè)包管理庫(kù)來(lái)統(tǒng)一管理這些依賴(lài)庫(kù),來(lái)避免版本沖突和管理繁瑣。

模塊(module):通常以單個(gè)文件形式存在的功能片段,入口文件通常稱(chēng)之為入口模塊或主模塊。

庫(kù)(library,簡(jiǎn)稱(chēng)lib):以一個(gè)或多個(gè)模塊組成的完整功能塊,為開(kāi)發(fā)中某一方面的問(wèn)題提供完整的解決方案

包(package):包含元數(shù)據(jù)的庫(kù),這些元數(shù)據(jù)包括:名稱(chēng)、描述、git主頁(yè)、許可證協(xié)議、作者、依賴(lài)等等

常用的包管理工具包括:

NPM:NPM(Node Package Manager)是Node.js自帶的包管理工具,也是最常用的包管理工具之一??梢苑奖愕匕惭b、升級(jí)、卸載依賴(lài)包,還可以發(fā)布自己的包到NPM倉(cāng)庫(kù)。

Yarn:Yarn是Facebook推出的包管理工具,具有速度快、緩存機(jī)制好等優(yōu)點(diǎn)。與NPM相比,Yarn可以更快地下載依賴(lài)包,并且支持離線(xiàn)模式。

PNPM:PNPM(Permissive NPM)是一款新興的包管理工具,采用了類(lèi)似于軟連接的方式,將依賴(lài)包安裝到每個(gè)項(xiàng)目的 node_modules 目錄下,從而避免了大量的重復(fù)安裝。

二、NPM

目前所有的包管理器都是基于 npm 的,npm本身就是一個(gè)包管理器。

運(yùn)行在 node 環(huán)境中,讓開(kāi)發(fā)者可以用簡(jiǎn)單的方式完成包的查找、安裝、更新、卸載、上傳等操作。

npm 由三部分組成:

registry:入口

可以把它想象成一個(gè)龐大的數(shù)據(jù)庫(kù)

第三方庫(kù)的開(kāi)發(fā)者,將自己的庫(kù)按照 npm 的規(guī)范,打包上傳到數(shù)據(jù)庫(kù)中

使用者通過(guò)統(tǒng)一的地址下載第三方包

官網(wǎng):https://www.npmjs.com/

查詢(xún)包

注冊(cè)、登錄、管理個(gè)人信息

CLI:command-line interface 命令行接口

安裝好 npm 后,通過(guò) CLI 來(lái)使用 npm 的各種功能

  1. 本地安裝:使用命令npm install 包名或npm i 包名即可完成本地安裝,本地安裝的包出現(xiàn)在當(dāng)前目錄下的node_modules目錄中。

4.包配置:

(1)配置文件:npm將每個(gè)使用npm的工程本身都看作是一個(gè)包,包的信息通過(guò)一個(gè)名稱(chēng)固定的配置文件來(lái)描述。

該文件為:package.json。

配置文件中可以描述大量的信息,包括:

name:包的名稱(chēng),該名稱(chēng)必須是英文單詞字符,支持連接符

version:版本

版本規(guī)范:主版本號(hào).次版本號(hào).補(bǔ)丁版本號(hào)

主版本號(hào):僅當(dāng)程序發(fā)生了重大變化時(shí)才會(huì)增長(zhǎng),如新增了重要功能、新增了大量的API、技術(shù)架構(gòu)發(fā)生了重大變化

次版本號(hào):僅當(dāng)程序發(fā)生了一些小變化時(shí)才會(huì)增長(zhǎng),如新增了一些小功能、新增了一些輔助型的API

補(bǔ)丁版本號(hào):僅當(dāng)解決了一些 bug 或 進(jìn)行了一些局部?jī)?yōu)化時(shí)更新,如修復(fù)了某個(gè)函數(shù)的 bug、提升了某個(gè)函數(shù)的運(yùn)行效率

description:包的描述

homepage:官網(wǎng)地址

author:包的作者,必須是有效的 npm 賬戶(hù)名,書(shū)寫(xiě)規(guī)范是 account ,例如:zhangsan zhangsan@gmail.com,不正確的賬號(hào)和郵箱可能導(dǎo)致發(fā)布包時(shí)失敗

repository:包的倉(cāng)儲(chǔ)地址,通常指 git 或 svn 的地址,它是一個(gè)對(duì)象

type:倉(cāng)儲(chǔ)類(lèi)型,git 或 svn

url:地址

main:包的入口文件,使用包的人默認(rèn)從該入口文件導(dǎo)入包的內(nèi)容

keywords: 搜索關(guān)鍵字,發(fā)布包后,可以通過(guò)該數(shù)組中的關(guān)鍵字搜索到包

(2)保存依賴(lài)關(guān)系

package.json文件最重要的作用,是記錄當(dāng)前工程的依賴(lài)

dependencies:生產(chǎn)環(huán)境的依賴(lài)包

devDependencies:僅開(kāi)發(fā)環(huán)境的依賴(lài)包

通過(guò)這樣的方式,移植代碼時(shí),只需要移植源代碼和package.json文件,不用移植node_modules目錄,然后在移植之后通過(guò)命令即可重新恢復(fù)安裝

5.語(yǔ)義版本:

當(dāng)x.y.z的情況下:表示是一個(gè)明確的版本號(hào)當(dāng)^x.y.z的情況下:表示是x版本保持不變,y和z永遠(yuǎn)是最新的當(dāng)~x.y.z的情況下:表示的是x和y是保持不變的,z永遠(yuǎn)是最新的

當(dāng)希望使用包的人使用指定包和版本時(shí),需要在配置文件中描述具體的依賴(lài)規(guī)則,通過(guò)語(yǔ)義版本來(lái)實(shí)現(xiàn),規(guī)則如下。

符號(hào) 描述 示例 示例描述

大于某個(gè)版本 >1.2.1 大于1.2.1版本

= 大于等于某個(gè)版本 >=1.2.1 大于等于1.2.1版本

< 小于某個(gè)版本 <1.2.1 小于1.2.1版本

<= 小于等于某個(gè)版本 <=1.2.1 小于等于1.2.1版本

  • 介于兩個(gè)版本之間 1.2.1 - 1.4.5 介于1.2.1和1.4.5之間
x 不固定的版本號(hào) 1.3.x 只要保證主版本號(hào)是1,次版本號(hào)是3即可
補(bǔ)丁版本號(hào)可增 ~1.3.4 保證主版本號(hào)是1,次版本號(hào)是3,補(bǔ)丁版本號(hào)大于等于4

^ 此版本和補(bǔ)丁版本可增 ^1.3.4 保證主版本號(hào)是1,次版本號(hào)可以大于等于3,補(bǔ)丁版本號(hào)可以大于等于4

  • 最新版本 * 始終安裝最新版本

三、Yarn

1.npm存在的問(wèn)題:

(1)依賴(lài)目錄嵌套層次深

(2)串行下載,無(wú)法完全利用帶寬資源,多個(gè)相同版本的包被重復(fù)下載

(3)控制臺(tái)輸出大量的信息

(4)存在工程移植問(wèn)題,版本依賴(lài)可以是模糊的,可能會(huì)導(dǎo)致工程移植后,依賴(lài)的確切版本不一致

2.如何解決上述問(wèn)題:

(1)使用扁平的目錄結(jié)構(gòu)

(2)并行下載,使用本地緩存

(3)控制臺(tái)僅輸出關(guān)鍵信息

(4)使用yarn-lock文件記錄確切依賴(lài)

3.優(yōu)化:

增加了某些功能強(qiáng)大的命令

讓既有的命令更加語(yǔ)義化

本地安裝的CLI工具可以使用 yarn 直接啟動(dòng)

將全局安裝的目錄當(dāng)作一個(gè)普通的工程,生成package.json文件,便于全局安裝移植

4.新增了 yarn.lock 文件。

它是 yarn 在安裝依賴(lài)包時(shí),自動(dòng)生成的一個(gè)文件,作用是記錄 yarn 安裝的每個(gè) package 的版本,保證"package.json"依賴(lài)安裝的版本和實(shí)際的版本是一致。后來(lái) npm 也新增了作用相同的 package-lock.json

五、pnpm

1.pnpm全稱(chēng):performant npm ,意味“高性能的npm”

優(yōu)勢(shì):

目前,安裝效率高于npm和yarn的最新版

極其簡(jiǎn)潔的node_modules目錄

避免了開(kāi)發(fā)時(shí)使用間接依賴(lài)的問(wèn)題

能極大的降低磁盤(pán)空間的占用

2.原理

(1)使用緩存來(lái)保存已經(jīng)安裝過(guò)的包,以及使用 pnpm-lock.yaml 來(lái)記錄詳細(xì)的依賴(lài)版本

(2)使用符號(hào)鏈接和硬鏈接(類(lèi)似于快捷方式)的做法來(lái)放置依賴(lài),從而規(guī)避了從緩存中拷貝文件的時(shí)間,使得安裝和卸載的速度更快

(3)由于使用了符號(hào)鏈接和硬鏈接,pnpm可以規(guī)避windows操作系統(tǒng)路徑過(guò)長(zhǎng)的問(wèn)題,因此,它選擇使用樹(shù)形的依賴(lài)結(jié)果,有著幾乎完美的依賴(lài)管理。也因?yàn)槿绱?#xff0c;項(xiàng)目中只能使用直接依賴(lài),而不能使用間接依賴(lài)

3.硬鏈接: 硬連接指通過(guò)索引節(jié)點(diǎn)來(lái)進(jìn)行連接。

軟鏈接:另外一種連接稱(chēng)之為符號(hào)連接(Symbolic Link),也叫軟連接。軟鏈接文件有類(lèi)似于Windows的快捷方式。它實(shí)際上是一個(gè)特殊的文件。在符號(hào)連接中,文件實(shí)際上是一個(gè)文本文件,其中包含的有另一文件的位置信息。

參考:

https://zhuanlan.zhihu.com/p/542738352

https://blog.csdn.net/qq_43750501/article/details/107523394

https://blog.csdn.net/weixin_42575028/article/details/127349060

http://www.xbhp.cn/news/63448.html

http://m.risenshineclean.com/news/59727.html

相關(guān)文章:

  • 學(xué)網(wǎng)站建設(shè) 去哪里百度推廣客戶(hù)端下載安裝
  • 中國(guó)建設(shè)銀行網(wǎng)站查詢(xún)密碼是什么意思媒體發(fā)布平臺(tái)
  • 網(wǎng)站站點(diǎn)文件夾權(quán)限設(shè)置網(wǎng)絡(luò)軟文營(yíng)銷(xiāo)
  • 公司做網(wǎng)站需要注意什么華為手機(jī)網(wǎng)絡(luò)營(yíng)銷(xiāo)策劃方案
  • 凡科網(wǎng)做網(wǎng)站網(wǎng)站策劃報(bào)告
  • 網(wǎng)站建設(shè) 方案書(shū)網(wǎng)絡(luò)平臺(tái)怎么推廣
  • 同一個(gè)網(wǎng)站可以同時(shí)做競(jìng)價(jià)和優(yōu)化百度熱門(mén)排行榜
  • 網(wǎng)站做導(dǎo)航的地圖seo模板建站
  • 惠州網(wǎng)站建設(shè) 翻譯6旅游搜索量環(huán)比增188%
  • 做文學(xué)網(wǎng)站用什么域名口碑營(yíng)銷(xiāo)怎么做
  • 商丘做網(wǎng)站哪家好上海廣告推廣
  • 網(wǎng)站開(kāi)發(fā)功能模塊出錯(cuò)seo課培訓(xùn)
  • 哪個(gè)網(wǎng)站做醫(yī)學(xué)培訓(xùn)好seo工作內(nèi)容和薪資
  • 浙江嘉興seo網(wǎng)站優(yōu)化推廣網(wǎng)絡(luò)推廣宣傳
  • 網(wǎng)站建設(shè)價(jià)格自動(dòng)點(diǎn)擊器怎么用
  • 廣西備案工信部網(wǎng)站營(yíng)銷(xiāo)型網(wǎng)站內(nèi)容
  • 潮州市住房和城鄉(xiāng)建設(shè)局網(wǎng)站站長(zhǎng)工具大全
  • b2b網(wǎng)站制作任務(wù)推廣引流平臺(tái)
  • wordpress 布局修改西安seo托管
  • 尋找網(wǎng)站建設(shè)_網(wǎng)站外包如何優(yōu)化網(wǎng)頁(yè)
  • 青島網(wǎng)站建設(shè)找潤(rùn)商大連seo按天付費(fèi)
  • 房地產(chǎn)行業(yè)網(wǎng)站跟我學(xué)seo從入門(mén)到精通
  • 重慶做網(wǎng)站價(jià)格百度一下首頁(yè)網(wǎng)址
  • 歐美網(wǎng)站建設(shè)排名北京網(wǎng)站seo服務(wù)
  • 如何在圖片上添加文字做網(wǎng)站網(wǎng)站備案查詢(xún)官網(wǎng)
  • 資源網(wǎng)站如何做網(wǎng)上開(kāi)店如何推廣自己的網(wǎng)店
  • 公司域名注冊(cè)網(wǎng)站哪個(gè)好合肥網(wǎng)絡(luò)推廣培訓(xùn)學(xué)校
  • 養(yǎng)生館室內(nèi)設(shè)計(jì)手機(jī)網(wǎng)站seo免費(fèi)軟件
  • 網(wǎng)站設(shè)計(jì)畢業(yè)論文任務(wù)書(shū)撫順優(yōu)化seo
  • 群暉ds1817做網(wǎng)站國(guó)外網(wǎng)站制作