免费爱碰视频在线观看,九九精品国产屋,欧美亚洲尤物久久精品,1024在线观看视频亚洲

      vue3源碼分析-rollup打包monorepo

      vue3源碼分析-rollup打包monorepo

      引言

    1. 手寫vue3源碼——?jiǎng)?chuàng)建項(xiàng)目
    2. 手寫vue3源碼——reactive, effect ,scheduler, stop
    3. 手寫vue3源碼——readonly, isReactive,isReadonly, shallowReadonly
    4. 手寫vue3源碼——ref, computed
    5. 本期咋們就先放一放源碼,咋們?nèi)绾未虬黰onorepo應(yīng)用,主要是源碼看累了,打包工具也是一門必須課,所有的源碼請(qǐng)查看

      效果

      為了提供大家的學(xué)習(xí)興趣,咋們先來看看效果,準(zhǔn)備發(fā)車,請(qǐng)系好安全帶

      cjs 結(jié)果預(yù)覽

      esm 結(jié)果預(yù)覽

      聲明文件預(yù)覽

      正文

      vue3使用的是rollup來打包的,咋們也用rollup來打包咋們的應(yīng)用,有不了解rollup的請(qǐng)查看官網(wǎng),monorepo是多個(gè)單體倉(cāng)庫(kù)合并得到的,那么咋們就先來打包單個(gè)倉(cāng)庫(kù),然后再來想辦法怎么一鍵打包全部

      打包shared

      在我項(xiàng)目中,shared倉(cāng)庫(kù)是相當(dāng)與utils函數(shù)的集合,用于對(duì)外導(dǎo)出一些工具函數(shù),那么咋們可以在本目錄下的package.json中安裝rollup。 正當(dāng)我就想在shared目錄下面安裝rollup插件的時(shí)候,我大腦給了個(gè)慢著的問號(hào)?

      monorepo 是不是可以在跟下面安裝依賴,然后子包都可以共享,基于這一特征。我毫不猶豫在根目錄下面敲下了下面的命令

      pnpm add rollup -w -D復(fù)制代碼

      有了rollup,咋們是不是需要在打包的目錄下面來搞個(gè)配置文件rollup.config.js,里面咋們寫上入口,出口,打包的格式等

      // 由于咋們需要打包成cjs, ems的格式,對(duì)外導(dǎo)出一個(gè)函數(shù)吧[ { input: ‘./src/index.ts’, output: { file: ‘dist/index.esm.js’, format: ‘esm’, }, }, { input: ‘./src/index.ts’, output: { file: ‘dist/index.cjs.js’, format: ‘cjs’, }, } ]復(fù)制代碼

      然后在本目錄下的package.json中加入打包的命令:

      “build”: “rollup -c”復(fù)制代碼

      nice, 到這了就完了,咋們?cè)囈幌拢Y(jié)果:

      分析錯(cuò)誤可以發(fā)現(xiàn),咋們是用了ts的語(yǔ)法,rollup無法轉(zhuǎn)換ts的語(yǔ)法,需要使用插件了。

      那么rollup轉(zhuǎn)換ts的插件也是有好多種,這里咋們用一個(gè)最快的那種,esbuild, rollup-plugin-esbuild

      pnpm add esbuild rollup-plugin-esbuild -w -D復(fù)制代碼

      關(guān)于rollup-plugin-esbuild這個(gè)插件,官方的介紹是說:

      esbuild is by far one of the fastest TS/ESNext to ES6 compilers and minifier, this plugin replaces rollup-plugin-typescript2, @rollup/plugin-typescript and rollup-plugin-terser for you. 意思是說,這個(gè)插件是目前來說轉(zhuǎn)換ts/esnext到es6是最快的編譯和壓縮,這個(gè)插件可以代替 rollup-plugin-typescript2, @rollup/plugin-typescript and rollup-plugin-terser的集合

      但是如果咋們需要打包非常低版本的代碼,那就請(qǐng)查看rollup 實(shí)戰(zhàn)第三節(jié) 打包生產(chǎn)打包低版本的代碼.

      言歸正傳,那么咋們把插件用上,在配置文件上加上插件

      //… 省略其他plugins: [ esbuild({ target: ‘node14’, }), ]復(fù)制代碼

      再來一次

      通過結(jié)果,咋們可以看到已經(jīng)打包成功了!

      但是咋們是有ts的,肯定還需要生成咋們代碼的類型吧,那就使用 rollup-plugin-dts這個(gè)來生成

      pnpm add rollup-plugin-dts -w -D復(fù)制代碼

      rollup-plugin-dts詳情請(qǐng)查看

      // 在數(shù)組后面在加上一項(xiàng),{ input: ‘./src/index.ts’, output: { file: ‘dist/index.dts’, format: ‘esm’, }, plugins: [ dts(), ], },復(fù)制代碼

      然后就可以ok啦,咋們單個(gè)項(xiàng)目就完成了

      打包多個(gè)

      既然單個(gè)是這么寫,那么其他的咋們是不是也可以寫配置文件呢?對(duì)的,沒錯(cuò),可以在對(duì)應(yīng)的單體項(xiàng)目下面寫上rollup.config.js來對(duì)他們進(jìn)行打包的配置

      然后咋們?cè)诟夸浵旅娴膒ackage.json中加入一行命令:

      “build”: “pnpm -r –filter=./packages/** run build”復(fù)制代碼

      咋們來拆分下命令

    6. pnpm -r 等同于 pnpm –recursive,意思是說在工作區(qū)的每個(gè)項(xiàng)目中運(yùn)行命令,不包括根項(xiàng)目,詳情查看
    7. –filter=./packages/**意思是說,過濾其他文件和文件夾,只使用packages下面的所有文件夾
    8. run build 是 pnpm -r run build的后綴,執(zhí)行package.json中的build指令,詳情請(qǐng)查看
    9. 合起來的意思是說,依次執(zhí)行packages里面所有文件夾的package.json的build命令

      優(yōu)化

      通過上面的方式咋們就可以打包成功了,但是這里咋們還可以進(jìn)行優(yōu)化下,每一次打包dist結(jié)果都需要手動(dòng)刪除,咋們可以使用 rimraf 這個(gè)庫(kù)來幫我們自動(dòng)刪除

      pnpm add rimraf -d -W復(fù)制代碼

      然后在每一個(gè)子包中修改build的命令

      “build”: “rimraf dist && rollup -c”復(fù)制代碼

      對(duì)比vue3打包

      這里可能有的人會(huì)說,vue3倉(cāng)庫(kù)都不是這么玩的,的確,vue3倉(cāng)庫(kù)的打包流程如下:

      有興趣的可以取看源碼哈,這里給出流程圖,想要使用這種方式的就自己實(shí)現(xiàn)哈!

      鄭重聲明:本文內(nèi)容及圖片均整理自互聯(lián)網(wǎng),不代表本站立場(chǎng),版權(quán)歸原作者所有,如有侵權(quán)請(qǐng)聯(lián)系管理員(admin#wlmqw.com)刪除。
      用戶投稿
      上一篇 2022年6月15日 15:25
      下一篇 2022年6月15日 15:25

      相關(guān)推薦

      • 30個(gè)無加盟費(fèi)的項(xiàng)目(茶顏悅色奶茶店加盟費(fèi)多少)

        茶顏悅色又爆了,8月18日,茶顏悅色南京門店正式開業(yè),開張不到半小時(shí),門店就人滿為患,消費(fèi)者的購(gòu)買熱情十分高漲,而由于人流量過大造成擁堵,茶顏悅色也不得不暫停營(yíng)業(yè)。 當(dāng)然,這里面排…

        2022年11月27日
      • cad連續(xù)標(biāo)注快捷鍵(cad連續(xù)標(biāo)注快捷鍵)

        本文主要講的是cad連續(xù)標(biāo)注快捷鍵,以及和cad連續(xù)標(biāo)注快捷鍵相關(guān)的知識(shí),如果覺得本文對(duì)您有所幫助,不要忘了將本文分享給朋友。 cad中連續(xù)標(biāo)注快捷鍵 CAD尺寸標(biāo)準(zhǔn)快捷命令:DL…

        2022年11月27日
      • 凈利潤(rùn)率越高越好嗎(凈利潤(rùn)率多少合適)

        一、持續(xù)增收不增利,平均凈利潤(rùn)率首次跌入個(gè)位數(shù) 2021年,增收不增利依舊是行業(yè)主流。具體來看,大部分企業(yè)營(yíng)業(yè)收入呈增長(zhǎng)態(tài)勢(shì),E50企業(yè)平均同比增速達(dá)到17.3%,但是利潤(rùn)增速則明…

        2022年11月26日
      • 京東快遞跨省幾天能到(京東一般多久到貨)

        由于覺得京東平臺(tái)的物流效勞十分的不錯(cuò),而且商品的質(zhì)量都比擬有保證。在京東平臺(tái)購(gòu)物的話,普通多久時(shí)間會(huì)到貨?下面的內(nèi)容停止引見。 京東普通多久到貨? 詳細(xì)要看發(fā)貨地址和你所在的地址的…

        2022年11月26日
      • 地靈絕魂劍(地靈絕魂劍像素)

        今天小編給各位分享地靈絕魂劍的知識(shí),其中也會(huì)對(duì)地靈絕魂劍像素進(jìn)行解釋,如果能碰巧解決你現(xiàn)在面臨的問題,別忘了關(guān)注本站,現(xiàn)在開始吧! dnf地靈絕魂劍怎么計(jì)算 地靈絕魂劍的附加攻擊是…

        2022年11月25日
      • 規(guī)范透明促PPP高質(zhì)量發(fā)展——16萬億元大市場(chǎng)迎來新規(guī)

        近日,財(cái)政部印發(fā)《關(guān)于進(jìn)一步推動(dòng)政府和社會(huì)資本合作(PPP)規(guī)范發(fā)展、陽(yáng)光運(yùn)行的通知》,從做好項(xiàng)目前期論證、推動(dòng)項(xiàng)目規(guī)范運(yùn)作、嚴(yán)防隱性債務(wù)風(fēng)險(xiǎn)、保障項(xiàng)目陽(yáng)光運(yùn)行四個(gè)方面進(jìn)一步規(guī)范P…

        2022年11月25日
      • 推薦3種白手起家的賺錢項(xiàng)目(白手起家賺錢項(xiàng)目有哪些)

        如今社會(huì)壓力非常的大,家有老少要養(yǎng)活,這些都加速了窮人想要?jiǎng)?chuàng)業(yè)的欲望,但是創(chuàng)業(yè)路總是那么的艱難,資金就是創(chuàng)業(yè)的重頭戲,所以選擇一個(gè)低成本又賺錢的項(xiàng)目是大多數(shù)人最期望的了,那么有哪些…

        2022年11月25日
      • 閑魚運(yùn)營(yíng)的4大技巧解析(閑魚運(yùn)營(yíng)怎么做)

        熟悉我又來了,上一次寫的文章是爆出風(fēng)水項(xiàng)目的潛規(guī)則,但那個(gè)項(xiàng)目已經(jīng)涼涼了。 這一次我是要教一些小白,你們第一次做互聯(lián)網(wǎng)的建議做的項(xiàng)目之一,這個(gè)項(xiàng)目就是閑魚賣二手物品賺差價(jià)了!!! …

        2022年11月24日
      • 2023年農(nóng)村創(chuàng)業(yè)最好的種植項(xiàng)目有哪些(2023年農(nóng)村宅基地)

        隨著2023年時(shí)間的臨近,有關(guān)農(nóng)村創(chuàng)業(yè)大家也都十分關(guān)注。2023年農(nóng)村創(chuàng)業(yè)最好的種植項(xiàng)目有哪些?新的一年農(nóng)村創(chuàng)業(yè)到底做什么最能賺錢呢?今天小編整理了一些非常具有發(fā)展?jié)摿Φ霓r(nóng)村種植業(yè)…

        2022年11月23日
      • 汕梅高速將改擴(kuò)建為雙向八車道 預(yù)計(jì)2026年建成通車

        昨日上午,汕梅高速改擴(kuò)建項(xiàng)目在梅州舉行建設(shè)動(dòng)員會(huì),標(biāo)志著廣東省首條山嶺重丘區(qū)高速公路改擴(kuò)建項(xiàng)目將全面開工建設(shè)。 汕梅高速是廣東省東北部南北貨運(yùn)的重要通道,聯(lián)通粵贛閩三省,承擔(dān)著粵東…

        2022年11月23日

      聯(lián)系我們

      聯(lián)系郵箱:admin#wlmqw.com
      工作時(shí)間:周一至周五,10:30-18:30,節(jié)假日休息