跳至主要內容

构建与打包工具链

LincZero大约 1 分钟

构建与打包工具链

一些例子

Obsidian插件

在Obsidian插件的构建系统中,一般使用的是esbuild,默认并不支持 svelte、vue 等组件的使用。其原依赖:

# 相关依赖
    "@types/node": "^16.11.6",
    "@typescript-eslint/eslint-plugin": "5.29.0",
    "@typescript-eslint/parser": "5.29.0",
    "builtin-modules": "3.3.0",
    "esbuild": "^0.14.47",
    "obsidian": "latest",
    "tslib": "2.4.0",
    "typescript": "4.7.4",
    "vite": "^4.1.1"

令其支持 svelte:

npm install --save-dev
	svelte				# svelte组件本体
	svelte-preprocess
	@tsconfig/svelte
	esbuild-svelte		# 让esbuild构建svelte

令其支持 vue:

# 相关依赖
	"vue": "^3.2.31"							# vue组件本体
	"@the_tree/esbuild-plugin-vue3": "^0.3.1",	# 让esbuild构建
    # "esbuild-sass-plugin": "^3.3.1",

但vue我踩坑了:scss样式类型不生效,https://github.com/pipe01/esbuild-plugin-vue3/issues/30

其他构建方法

ts有很多编译工具,如 tsc、tsest、tsup、rollup、vite、webpack 等,我该如何选择?

TypeScript 构建工具对比

构建工具主要特点适用场景配置文件
vite基于原生 ESM 的开发服务器,热模块替换极快
底层使用 rollup 进行打包
Vue、React 等前端框架项目,快速开发体验vite.config.js
rollup模块打包器,擅长库的打包打包库,生成高质量的模块rollup.config.js
tsup支持 TypeScript
底层使用 esbuild 进行打包
快速打包,生成现代化 JavaScripttsup.config.ts
webpack以前的VueCLI底层使用Webpackwebpack.config.js
tscTypeScript 官方编译器,功能基础,速度较快小型项目,快速编译tsconfig.json
ts-jestJest 的 TypeScript 版本,用于测试TypeScript 项目的单元测试
vitest
  • rollup中文文档:https://www.rollupjs.com/