最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

tsup:一個(gè)新型 esbuild 驅(qū)動(dòng)的 TypeScript 庫(kù)打包工具

2023-09-14 21:57 作者:寫代碼的寶哥  | 我要投稿

原文鏈接:Create Your New Modern TypeScript/JavaScript Library With tsup,2022.11.15,by Christopher T.

導(dǎo)讀:tsup 是基于 esbuild 開發(fā)的一個(gè)新型打包工具(比 rollup 還新)。內(nèi)置了 TypeScript 支持,零配置、開箱即用,幫助你高效創(chuàng)建現(xiàn)代 TypeScript/JavaScript 庫(kù)。


現(xiàn)在是作為開發(fā)者的最好的時(shí)候,尤其對(duì) JavaScript 開發(fā)者來(lái)說(shuō)。JavaScript 生態(tài)系統(tǒng)龐大而充滿驚喜,開源項(xiàng)目不斷演進(jìn),一個(gè)又一個(gè)創(chuàng)新工具涌現(xiàn)。有像 React 這樣用于開發(fā)復(fù)雜的用戶界面的庫(kù)、像 Next 這樣用于構(gòu)建服務(wù)器端渲染應(yīng)用程序的框架、像 Gatsby 這樣用于構(gòu)建靜態(tài)網(wǎng)站的程序,還有 LernaTurborepo 這種構(gòu)建多包倉(cāng)庫(kù)(monorepo)的工具等等。

提交錯(cuò)誤修復(fù)或提出新想法的 Pull Request 通常是開發(fā)者參與開源項(xiàng)目時(shí)首先想到的。我們還可以選擇開發(fā)自己的開源項(xiàng)目。如果你計(jì)劃寫自己的 JavaScript 開源庫(kù),本文就比較適合你。對(duì)于那些好奇但沒(méi)有聽說(shuō)過(guò) tsup(一款替代流行 rollup 的、現(xiàn)代的、強(qiáng)大且健壯的 JavaScript 工具) 的人來(lái)說(shuō),我們將介紹如何使用它創(chuàng)建自己的 JavaScript 庫(kù),并將其提交到 npm 中央倉(cāng)庫(kù)(npm registry)供其他人安裝使用。我們的示例代碼使用 TypeScript 編寫( TypeScript 是 JavaScript 的一個(gè)超集)。

tsupesbuild 驅(qū)動(dòng)。esbuild 是一個(gè)非常快速、現(xiàn)代化且無(wú)需緩存即可實(shí)現(xiàn)極速打包功能的 JavaScript 打包器 。esbuild 無(wú)需配置就能打包 TypeScript 庫(kù)的工具,可以打包任何受到 Node.js 平臺(tái)支持的文件,包括 .js、.json.mjs、.ts.tsx,在本文撰寫時(shí) esbuild 也實(shí)驗(yàn)性地支持 .css 文件的打包。

項(xiàng)目初始化

開始介紹前,先啟動(dòng)一個(gè)終端并創(chuàng)建一個(gè)新目錄(可以隨意命名)。然后在終端中輸入 cd 進(jìn)入該目錄。本文我們使用目錄名 my-typescript-library。

mkdir my-typescript-library cd my-typescript-library

我們需要一個(gè) package.json 文件,所以請(qǐng)?jiān)诮K端中輸入 npm init -y。

npm init -y

這將立即使用默認(rèn)設(shè)置為我們創(chuàng)建一個(gè) package.json 文件。

創(chuàng)建一個(gè)名為 src 的目錄,然后在該目錄中創(chuàng)建一個(gè)名為 index.ts 的新文件。這個(gè)文件是我們庫(kù)的入口點(diǎn)。

由于要使用 tsup,所以將它作為開發(fā)依賴安裝:

npm i -D tsup

由于我們?cè)?src/index.ts 中創(chuàng)建的文件將成為我們庫(kù)的入口點(diǎn),因此我們需要指示 tsup 消費(fèi)這些文件并將其輸出到某個(gè)位置(我們將設(shè)置輸出目錄為 ./dist)。

繼續(xù)修改 package.json,在 scripts 屬性下添加 buildstart 腳本:


現(xiàn)在當(dāng)我們運(yùn)行 npm run build 時(shí),tsup 編譯器會(huì)使用 src/index.ts 并自動(dòng)編譯文件到 ./dist 目錄中:

下面是目錄結(jié)構(gòu)



默認(rèn)情況下,tsup 將打包文件輸出到 ./dist 目錄,不過(guò)我們可以通過(guò)配置文件進(jìn)行配置,這塊我們后面會(huì)詳細(xì)介紹。

如果我們查看生成的文件 ./dist/index.js,會(huì)發(fā)現(xiàn)內(nèi)容為空。這是因?yàn)槲覀冞€沒(méi)有為庫(kù)編寫任何代碼。

添加功能代碼

讓我們輸入一些基本代碼,以便更詳細(xì)地分析輸出結(jié)果:

src/index.ts


再次運(yùn)行 npm run build,并注意 tsup 是如何將我們的代碼轉(zhuǎn)譯為 ES5 的:

讓我們通過(guò)創(chuàng)建一個(gè)名為 client.js 的文件來(lái)測(cè)試我們的庫(kù),包含以下代碼:

在終端中輸入 node client.js 運(yùn)行文件,你會(huì)看到:

很好!我們的庫(kù)到目前運(yùn)行得非常順利。


tsup:一個(gè)新型 esbuild 驅(qū)動(dòng)的 TypeScript 庫(kù)打包工具的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
弥渡县| 广元市| 平度市| 泊头市| 横山县| 保亭| 手游| 轮台县| 庆城县| 天津市| 元氏县| 嵩明县| 万宁市| 樟树市| 芜湖县| 正蓝旗| 离岛区| 临高县| 荣成市| 九台市| 和田县| 万宁市| 永靖县| 京山县| 和龙市| 武威市| 宣恩县| 怀来县| 晋宁县| 松桃| 巫山县| 桐乡市| 聂拉木县| 商丘市| 前郭尔| 诸城市| 堆龙德庆县| 沙湾县| 巴彦县| 海盐县| 双峰县|