Skip to content

建议:build 改用 tsc --noEmit + esbuild 单文件打包,减小安装包体积 #42

Description

@WuJunkai2004

背景

感谢这个插件,非常实用 🎉

看了下 v1.7.4 的 package.json,当前构建脚本是:

"build": "tsc && node build.tui.mjs"

同时 files 里把 dist、src、tui 都发到了 npm 包里,加上ts相关工具,约121mb

Image

建议

把 build 改为:

"build": "tsc --noEmit && node build.tui.mjs"

让 tsc 只负责类型检查(仓库里已有 typecheck: tsc --noEmit 脚本,二者可以合并),产物统一交给 esbuild 打包成单文件——build.tui.mjs 已经在做这件事,dist/tui.js、dist/v2.js 就是单文件 bundle。

这样打包出来的产物:

  1. 去掉了 tsc 编译出的散装 js 部分,包内不再携带依赖库的引用;
  2. src 源码目录也可以顺便从 files 里移除;
  3. 在 opencode 里安装时不会携带这些依赖库,可以明显减少包体积。

备注

  • 如果 ./server 入口需要保留,也可以一并交给 esbuild 打成单文件;
  • 如需保留类型提示,可用 tsc --emitDeclarationOnly 只产出 .d.ts 声明文件,不影响上面的体积优化。

仅供参考,感谢维护!

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

enhancementNew feature or request

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions