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

仅包含type与interface定义的TypeScript文件如何发布到NPM

问题1:package.json中main字段的配置方案

不需要删除main字段,也不要设置为"main": "dist/types.ts",按以下规则配置即可:

  • 新增一个空的index.js文件放在最终发布的dist目录下,将main字段指向该文件:"main": "dist/index.js"。这是为了符合NPM包的规范要求,避免安装、引用时出现找不到入口文件的报错。
  • 额外新增types字段,指向编译后的类型声明文件入口:"types": "dist/index.d.ts",这是TypeScript官方规定的类型声明入口识别字段,只有配置了这个字段,用户安装你的包后才能正确读取到类型定义。
问题2:是否需要编译为.d.ts格式发布

必须要将源.ts文件编译为标准的.d.ts格式后再发布,原因如下:

  • .d.ts是TypeScript官方规定的类型声明标准格式,不受用户项目的TS配置差异影响,兼容性最好。
  • 绝大多数TS项目的默认配置都会排除node_modules目录下的普通.ts文件,仅识别.d.ts后缀的类型声明,直接发布源.ts文件会导致用户读取不到类型。
  • 编译操作非常简单,只需要在你的项目tsconfig.json中开启两个配置项即可,你提供的类型定义代码编译后不会有任何内容丢失:
{
  "compilerOptions": {
    "declaration": true,
    "emitDeclarationOnly": true,
    "outDir": "./dist"
  }
}

参考package.json核心配置

{
  "name": "你的包名",
  "version": "1.0.0",
  "main": "dist/index.js",
  "types": "dist/index.d.ts",
  "files": ["dist"]
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 23:57:04