vite 生成 TypeScript 的类型定义( d.ts )

核心是 emitDeclarationOnly, declarationDir, declaration
也可以通过 tsc 命令 传入这些参数, 生成 d.ts

vite.config.ts

// 导入 ts
import ts from 'typescript';
import path from 'node:path';

let input = path.resolve(__dirname, "src/index.ts");


// 插件
plugins: [
  {
    name: "emit-dts",
    buildEnd() {
      const program = ts.createProgram([input], {
        target: ts.ScriptTarget.ESNext,
        module: ts.ModuleKind.ESNext,
        moduleResolution: ts.ModuleResolutionKind.NodeJs,
        // jsx实现 根据自己的需求改
        jsx: ts.JsxEmit.Preserve,
        jsxImportSource: "solid-js",
        allowSyntheticDefaultImports: true,
        esModuleInterop: true,
        // js 源码输出的文件夹
        outDir: `dist/source`,
        // d.ts 输出的文件夹
        declarationDir: `dist/types`,
        declaration: true,
        // true 只输出 dts 到 declarationDir, 
        // false 同时输出js源码到 outDir
        emitDeclarationOnly: true,
        allowJs: true,
      });
      program.emit();
    },
  },
  // 其他插件 ↓
],

你可能感兴趣的:(JavaScript,typescript,javascript,前端,d.ts)