Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

♻️ refactor build with tsup #46

Merged
merged 3 commits into from
Dec 7, 2021
Merged

♻️ refactor build with tsup #46

merged 3 commits into from
Dec 7, 2021

Conversation

YunYouJun
Copy link
Owner

  • refactor with tsup
  • export * from mirai-api-http

@YunYouJun
Copy link
Owner Author

@CaoMeiYouRen 我尝试了下 tsup,发现配置确实简单许多,构建速度也相对较快,以及将各种类型从 mirai-api-http 中导出了。
也实现了 esm 与 cjs 的分别导出。你看看这样是否符合预期?

@lgtm-com
Copy link

lgtm-com bot commented Dec 7, 2021

This pull request fixes 1 alert when merging 74a1d9b into d4c46da - view on LGTM.com

fixed alerts:

  • 1 for Useless assignment to local variable

@lgtm-com
Copy link

lgtm-com bot commented Dec 7, 2021

This pull request fixes 1 alert when merging eb85e60 into d4c46da - view on LGTM.com

fixed alerts:

  • 1 for Useless assignment to local variable

@CaoMeiYouRen
Copy link

@CaoMeiYouRen 我尝试了下 tsup,发现配置确实简单许多,构建速度也相对较快,以及将各种类型从 mirai-api-http 中导出了。 也实现了 esm 与 cjs 的分别导出。你看看这样是否符合预期?

倒也可以,我看了下改动比我的那个还要大,但也实现了设计目的,我觉得ok

@CaoMeiYouRen
Copy link

@CaoMeiYouRen 我尝试了下 tsup,发现配置确实简单许多,构建速度也相对较快,以及将各种类型从 mirai-api-http 中导出了。 也实现了 esm 与 cjs 的分别导出。你看看这样是否符合预期?

  • 不过个人感觉 tsup 生成的代码质量低了一些,主要是遍地的 var 让我血压有点升高,而且我都不知道为什么会有这么多兼容性代码。

  • 另外,es5target 目标是不是太低, 会生成很多额外的兼容性代码,这一点希望再考虑下

@Samarium150
Copy link
Contributor

  • 不过个人感觉 tsup 生成的代码质量低了一些,主要是遍地的 var 让我血压有点升高,而且我都不知道为什么会有这么多兼容性代码。

应该是rollupesbuild的打包逻辑不太一样吧,不过rollup出来的兼容性代码确实要少一点。但其实问题不大?
直接配置esbuild情况可能会好一点,但维护成本应该也会相应增加

@YunYouJun
Copy link
Owner Author

YunYouJun commented Dec 7, 2021

使用 tsup 目的是减少项目中的打包配置(这也是我之前偷懒只用 tsc 的原因)。
变动主要是修改了一些默认导出,将其最后都从入口导出。tsup 本质只用了一个配置文件。(还有就是 esbuild 速度确实快些。)

关于代码大小上,目前导出算上 ESM + CJS + DTS,总和在 115KB,已经比之前小了不少。(可能有遗漏的东西,还没排查到,之后有问题再修。)
关于兼容版本问题,先导出低版本靠谱一点(又不是不能用,现在 ES2016 应该靠谱一点),我之前这个项目有几个 commit 就是 revert 修改 target,最后改到了 ES5。
之后再慢慢迭代更新吧。

@CaoMeiYouRen
Copy link

使用 tsup 目的是减少项目中的打包配置(这也是我之前偷懒只用 tsc 的原因)。 变动主要是修改了一些默认导出,将其最后都从入口导出。tsup 本质只用了一个配置文件。(还有就是 esbuild 速度确实快些。)

关于代码大小上,目前导出算上 ESM + CJS + DTS,总和在 115KB,已经比之前小了不少。(可能有遗漏的东西,还没排查到,之后有问题再修。) 关于兼容版本问题,先导出低版本靠谱一点(又不是不能用),我之前这个项目有几个 commit 就是 revert 修改 target,最后改到了 ES5。 之后再慢慢迭代更新吧。

  • ok,关于配置问题已经理解了
  • 关于 target 目标问题,我看了下是从 es2020 改成了 es5,es2020 确实是多了很多新语法,在 node14 上才支持,浏览器不够新的话也不怎么支持,所以我之前都是设置成 es2019 的。建议是不低于 es2015 ,es5 旧的过分了。

@lgtm-com
Copy link

lgtm-com bot commented Dec 7, 2021

This pull request fixes 1 alert when merging 448ba6a into d4c46da - view on LGTM.com

fixed alerts:

  • 1 for Useless assignment to local variable

@YunYouJun
Copy link
Owner Author

关于 target 目标问题,我看了下是从 es2020 改成了 es5,es2020 确实是多了很多新语法,在 node14 上才支持,浏览器不够新的话也不怎么支持,所以我之前都是设置成 es2019 的。建议是不低于 es2015 ,es5 旧的过分了。

关于 tsconfig.json 已修改为 ES2016。

@YunYouJun YunYouJun merged commit f6212da into master Dec 7, 2021
@YunYouJun YunYouJun deleted the refactor/tsup branch December 7, 2021 16:44
@YunYouJun
Copy link
Owner Author

我目前将 v2.2.0 发布在了 next tag 下,可以通过 npm i mirai-ts@next 进行使用。
在测试使用一段时间无问题后,将会合并到 latest 上。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants