### 背景 感谢这个插件,非常实用 🎉 看了下 v1.7.4 的 `package.json`,当前构建脚本是: ```json "build": "tsc && node build.tui.mjs" ``` 同时 `files` 里把 `dist`、`src`、`tui` 都发到了 npm 包里,加上ts相关工具,约121mb <img width="441" height="579" alt="Image" src="https://github.com/user-attachments/assets/afd9794f-6e98-42de-b40f-26f998964d36" /> ### 建议 把 `build` 改为: ```json "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
Hotakus commentedon Sep 30, 2026
感谢你对
package.json的分析, 通过--noEmit等手段确实可以令包本体体积减少,这确实是我的问题。并且我也发现了包体积过大的根因根据我本机实测由于依赖导致安装插件时包体积过大的问题(安装后 121MB,即使通过
--noEmit貌似仍然无法解决),这个问题貌似是由于peer依赖包未进行optional声明导致的,若未进行optional声明,在安装插件时则会尝试全量安装依赖,导致体积膨胀,进行optional声明后,仅仅安装必要依赖,安装体积可以减少到个位 MB 量级,具体修改可以查看关联 PR ,后续我会合并入主线版本进行发布,感谢你的支持,如果后续还有什么使用问题,欢迎再提。