512 - 《Isolated Declarations 实现》

发布于 2025年1月14日

1、早上看到 unplugin-isolated-decl 就看了下实现。unplugin-isolated-decl 是一个TypeScript 声明文件生成工具,比传统的 tsc 编译器速度更快。其支持多种转换器,包括 Oxc、SWC 和 TypeScript。

2、提取 Declarations 的实现思路。

1)oxc。

import oxc from 'oxc-transform';
const result = oxc.isolatedDeclaration(id, code, { sourcemap: sourceMap });

2)swc。

import swc from '@swc/core';
const result = await swc.parse(code, {
  syntax: 'typescript',
  comments: false,
  target: 'es2022',
});
const dts = swc.printSync(result, {
  minify: false,
});
const result = { code: dts.code };

3)Typescript。

import ts from 'typescript';
const options = {
  declaration: true,
  emitDeclarationOnly: true,
  noEmitOnError: false,
  declarationMap: true,
};
const host = ts.createCompilerHost(options);
const originalGetSourceFile = host.getSourceFile;
const sourceFile = ts.createSourceFile(
  id,
  cod

内容预览已结束

此内容需要会员权限。请先登录以查看完整内容。