You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Bun Workspaces开发NPM包遇TS声明两大问题求助

解决方案

问题1:@cosmoosjs/core 安装后提示缺少声明文件

你试过的通用方案无效,核心问题出在包本身的TS配置或发布规则上,按以下步骤排查修复:

  • 检查core包的package.json:确保types字段指向正确的声明文件路径(比如"types": "./dist/index.d.ts"),同时在files字段明确包含dist/**/*.d.ts和dist/**/*.js,避免发布时漏掉声明文件。
  • 检查core包的tsconfig.json:必须开启"declaration": true,设置"outDir": "./dist"确保编译时生成d.ts文件到指定目录;同时确认include数组覆盖所有源码文件(比如src/**/*)。
  • 本地测试优化:不要用常规npm install,改用bun link将core包链接到测试项目,或在测试项目的package.json里直接写本地路径引用(比如"@cosmoosjs/core": "file:../path/to/core"),之后重启VSCode的TS服务器(Ctrl+Shift+P → TypeScript: Restart TS Server)清除缓存。

问题2:hono-openapi-adapter 无法生成声明文件(工作区依赖解析失败)

这是monorepo场景下TS生成声明时的常见路径解析问题,按以下步骤修复:

  • 前置准备:先执行core包的构建命令,确保其dist目录已生成完整的d.ts声明文件。
  • 配置hono包的tsconfig.json:在compilerOptions中添加路径映射,让TS能识别工作区依赖:
    "compilerOptions": {
      "baseUrl": "./",
      "paths": {
        "@cosmoosjs/core": ["../core/src"]
      }
    }
    
  • 检查hono包的package.json:工作区依赖的版本必须写"workspace:*"(比如"@cosmoosjs/core": "workspace:*"),让TS识别这是本地工作区依赖而非远程npm包。
  • 单独生成声明:用bun x tsc --emitDeclarationOnly --project ./tsconfig.json命令单独生成声明文件,避免和常规构建流程冲突;若仍有报错,可临时开启"skipLibCheck": true跳过第三方库类型检查,但优先确保工作区依赖的声明文件完整。
  • 校验Bun工作区配置:bunfig.toml里的packages字段要覆盖所有工作区包(比如packages = ["packages/*"]),确保Bun能正确解析工作区路径。

内容的提问来源于stack exchange,提问作者Mathys

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.26 16:05:06