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

如何将TypeScript库编译为.mjs并生成d.ts文件?

满足TypeScript库编译需求的工具方案

首选工具:tsup

tsup 是基于 esbuild 封装的一站式打包工具,能同时覆盖你的所有需求:生成 ES 模块(.mjs)、自动产出 d.ts 类型文件、分析依赖链仅编译被导入的文件,还能自动补全导入语句的扩展名。

实现步骤:

  1. 安装依赖
npm install tsup --save-dev
  1. 创建配置文件 tsup.config.ts
import { defineConfig } from 'tsup'

export default defineConfig({
  entry: ['src/index.ts'], // 指定入口文件
  format: ['esm'], // 输出 ES 模块格式
  outExtension: { js: '.mjs' }, // 明确输出 .mjs 扩展名
  dts: true, // 自动生成类型声明文件
  outDir: 'dist', // 输出目录
  esbuildOptions(opt) {
    // 确保编译后的导入语句自动添加 .mjs 扩展名
    opt.resolveExtensions = ['.ts', '.mjs']
  },
  clean: true, // 编译前清空输出目录
  treeshake: true // 摇树优化,排除未被引用的文件
})
  1. 在 package.json 中添加编译脚本
{
  "scripts": {
    "build": "tsup"
  },
  "type": "module" // 配合 ES 模块解析规则
}

运行 npm run build 后,dist 目录会生成 index.mjs 和对应的 index.d.ts 文件,所有导入/导出语句都会自动补上 .mjs 扩展名,源码中无需手动添加 .js 后缀。

备选方案:Rollup + 插件

如果需要更高的自定义灵活性,可以用 Rollup 配合专用插件实现需求:

实现步骤:

  1. 安装依赖
npm install rollup @rollup/plugin-typescript @rollup/plugin-node-resolve rollup-plugin-dts --save-dev
  1. 创建配置文件 rollup.config.js
import typescript from '@rollup/plugin-typescript'
import resolve from '@rollup/plugin-node-resolve'
import dts from 'rollup-plugin-dts'

export default [
  // 编译生成 .mjs 文件
  {
    input: 'src/index.ts',
    output: {
      file: 'dist/index.mjs',
      format: 'es',
      preserveModules: true // 保留原文件目录结构,可选配置
    },
    plugins: [
      resolve({ extensions: ['.ts'] }),
      typescript({
        compilerOptions: {
          module: 'ESNext',
          declaration: false // 单独处理类型声明文件
        }
      })
    ],
    treeshake: true
  },
  // 生成 d.ts 类型声明文件
  {
    input: 'src/index.ts',
    output: {
      file: 'dist/index.d.ts',
      format: 'es'
    },
    plugins: [dts()]
  }
]
  1. 添加 npm 编译脚本
{
  "scripts": {
    "build": "rollup -c"
  },
  "type": "module"
}

运行 npm run build 后,同样会得到带正确扩展名的 .mjs 文件和完整的类型声明文件。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 21:55:11