-
Notifications
You must be signed in to change notification settings - Fork 0
Open
Description
由于我们的需求比较特殊,所以在这些编译器/打包器当中挑一个合适的作为js编译的后端就变成了一件比较困难的事,这里记录一下每个编译器的情况,包括能满足的部分以及坑。为后续提供查询支持
TSC
- 装饰器支持:内建
- import.meta:??
- 天然适合typescript,但是编译成mjs的话,import/export语句中不会帮忙带上.mjs后缀,不符合nodejs标准,需要使用tsc的插件(Compiler API)来手工加入
vite
- 装饰器支持:使用插件
- import.meta: 内建
- 当前正在使用的js编译后端
- 适合打包前端项目
- 会使用process.stdout.write污染控制台,需要hook入口,更改node_modules下的源码达到过滤的目的
- 后端使用rollup,所以rollup有的问题,他也有
Rollup
- 装饰器支持:使用插件
- import.meta: 内建
- 没法为exports设定一样的输入 bfsp的exports的value重复的问题 #32
- 源码比较混乱,几乎都是callback风格,难以调试
esbuild
- 装饰器支持:不支持
- import.meta: 不支持
- 速度极快
swc
- 装饰器支持:内建
- import.meta: 内建
- 速度极快
- 插件使用Visitor API, 是否拿到路径等上下文信息?
- 打包(spack)只有cli,没有api支持
Metadata
Metadata
Assignees
Labels
No labels