摘要:本文近日施工中與各位分享近期筆者寫一個(gè)較繁復(fù)的輪子的過程,以及其中的踩坑與思考。拿常用的庫作比較的話,這個(gè)庫性質(zhì)類似這種輔助的工具庫,這種范式有函數(shù)式和響應(yīng)式編程的味道,具體是屬于數(shù)據(jù)流編程的一種。
(本文近日施工中...)
與各位分享近期筆者寫一個(gè)較繁復(fù)的輪子的過程,以及其中的踩坑與思考。若有更佳實(shí)踐,還望不吝賜教。
要素察覺:目錄結(jié)構(gòu), git 分支策略, TS 與 Lint ,多個(gè)構(gòu)建入口和目標(biāo)包格式 (TS 與 構(gòu)建,TS 與 Jest(測(cè)試) ,Rollup), tree shaking 與搖不下來的副作用,蛋疼的 jest debug 與 source map 。
輪子樣貌輪子是做 Flow-based Programming 用的,主要和我導(dǎo)師項(xiàng)目有關(guān),如果你對(duì)這種編程范式有興趣,可以進(jìn)入 這個(gè) Wiki 傳送門 和 這個(gè) awesome-fbp 項(xiàng)目看看類似的 FBP 項(xiàng)目。用過 IBM 的 UML 工具的同學(xué)可能更好理解,它類似活動(dòng)和狀態(tài)圖。拿常用的庫作比較的話,這個(gè)庫性質(zhì)類似 lodash, RxJS 這種輔助 coding 的工具庫,這種范式有函數(shù)式和響應(yīng)式編程的味道,具體是屬于數(shù)據(jù)流編程的一種。因?yàn)榻忉屍饋砗苈闊?,所以略去千?..
一些小目標(biāo) 覆蓋主要幾種包格式CommonJS:Node.js 的尋常包格式,用 npm 安裝再直接 require 那種
ES Module:ES2015 標(biāo)準(zhǔn)推的 JS 模塊標(biāo)準(zhǔn),搭配 webpack/rollup 搖一搖食用更佳,rollup 還會(huì)做數(shù)據(jù)流分析,搖樹的力度更大。我們把 ESM 版本也放在 npm 發(fā)布的包里,提供 package.json 中的 module 字段和一個(gè) path-mapping 文件(給 Babel/webpack/rollup 配置時(shí)用的),將用戶普通 require 的目標(biāo)重定向到 ESM 版本
UMD:一種兼容 CJS,ESM,AMD 以及全局導(dǎo)出的包格式。通常直接 HTML 里 的那種。同樣把它放在 npm 包中,再給 package.json 添加 unpkg, jsdelivr 字段,這兩家是 npm 的 CDN ,使用戶從 CDN 加載時(shí)指向 UMD 格式的包。
ES Module (browser): ESM 格式的包,給瀏覽器用的, 的那種。
CJS 和 ESM 發(fā)布的包應(yīng)是模塊化、多文件的,UMD 和 ESM-browser 則將所有文件打成一個(gè)包,方便用戶下載和導(dǎo)入。
typings:TypeScript 的聲明文件,建議當(dāng)作一個(gè)版本,多帶帶放在一個(gè)文件夾;不然 *.js, *.js.map, *.d.ts 在一起看著很擠,版本之間又重復(fù)
使用多個(gè)構(gòu)建入口和常量,而非環(huán)境變量(本文近日施工中...)
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/105967.html
摘要:在他的重學(xué)前端課程中提到到現(xiàn)在為止,前端工程師已經(jīng)成為研發(fā)體系中的重要崗位之一。大部分前端工程師的知識(shí),其實(shí)都是來自于實(shí)踐和工作中零散的學(xué)習(xí)。一基礎(chǔ)前端工程師吃飯的家伙,深度廣度一樣都不能差。 開篇 前端開發(fā)是一個(gè)非常特殊的行業(yè),它的歷史實(shí)際上不是很長(zhǎng),但是知識(shí)之繁雜,技術(shù)迭代速度之快是其他技術(shù)所不能比擬的。 winter在他的《重學(xué)前端》課程中提到: 到現(xiàn)在為止,前端工程師已經(jīng)成為研...
摘要:在他的重學(xué)前端課程中提到到現(xiàn)在為止,前端工程師已經(jīng)成為研發(fā)體系中的重要崗位之一。大部分前端工程師的知識(shí),其實(shí)都是來自于實(shí)踐和工作中零散的學(xué)習(xí)。一基礎(chǔ)前端工程師吃飯的家伙,深度廣度一樣都不能差。開篇 前端開發(fā)是一個(gè)非常特殊的行業(yè),它的歷史實(shí)際上不是很長(zhǎng),但是知識(shí)之繁雜,技術(shù)迭代速度之快是其他技術(shù)所不能比擬的。 winter在他的《重學(xué)前端》課程中提到: 到現(xiàn)在為止,前端工程師已經(jīng)成為研發(fā)體系...
簡(jiǎn)介 本輪子是通過 React + TypeScript + Webpack 搭建的,至于環(huán)境的搭建這邊就不在細(xì)說了,自己動(dòng)手谷歌吧。當(dāng)然可以參考我的源碼。 這里我也是通過別人學(xué)的,主要做些總結(jié)及說明造各個(gè)輪子的一種思路,方便今后使用別人的的輪子時(shí)自己腦中有造輪子的思想,能通過修改源碼及時(shí)修改 bug,按時(shí)上線。 本文的 Icon 組件主要是參考 Framework7 中的 Icon React ...
簡(jiǎn)介 本輪子是通過 React + TypeScript + Webpack 搭建的,至于環(huán)境的搭建這邊就不在細(xì)說了,自己動(dòng)手谷歌吧。當(dāng)然可以參考我的源碼。 這里我也是通過別人學(xué)的,主要做些總結(jié)及說明造各個(gè)輪子的一種思路,方便今后使用別人的的輪子時(shí)自己腦中有造輪子的思想,能通過修改源碼及時(shí)修改 bug,按時(shí)上線。 本文的 Icon 組件主要是參考 Framework7 中的 Icon React ...
摘要:呵呵,你沒想到吧,這玩意兒竟然有第三集我靠,我自己都沒想到,讓我們悄悄的回顧一下前兩集完全沒想到,竟然會(huì)有第二集我厭倦了,那就造個(gè)輪子第二集痛點(diǎn)分析第一集在這里我厭倦了,那就造個(gè)輪子算了,我都懶得寫了,自己看吧,當(dāng)然不看也無所謂,正式開始。 倉庫:215566435/rectx 前言 麻煩快去我的倉庫里面噴: 老子學(xué)不動(dòng)了,求不要更新。 呵呵,你沒想到吧,這玩意兒竟然有第三集!我靠,我...
閱讀 682·2021-11-25 09:43
閱讀 1688·2021-11-18 10:02
閱讀 1067·2021-10-15 09:39
閱讀 1918·2021-10-12 10:18
閱讀 2151·2021-09-22 15:43
閱讀 795·2021-09-22 15:10
閱讀 2110·2019-08-30 15:53
閱讀 1011·2019-08-30 13:00