Skip to content

TypeScript 配置

当你运行 wxt prepare 时,WXT 会在 <rootDir>/.wxt/tsconfig.json 为你的项目生成一个基础 TSConfig 文件。

你至少需要在根目录创建一个如下所示的 TSConfig:

jsonc
// <rootDir>/tsconfig.json
{
  "extends": ".wxt/tsconfig.json",
}

如果你在 monorepo 中,可能不希望继承该配置。如果不继承,则需要将 .wxt/wxt.d.ts 添加到 TypeScript 项目中:

ts
/// <reference path="./.wxt/wxt.d.ts" />

编译器选项

要指定自定义编译器选项,请在 <rootDir>/tsconfig.json 中添加:

jsonc
// <rootDir>/tsconfig.json
{
  "extends": ".wxt/tsconfig.json",
  "compilerOptions": {
    "jsx": "preserve",
  },
}

TSConfig 路径别名

WXT 提供了一组默认的路径别名。

别名目标示例
~~<rootDir>/*import "~~/scripts"
@@<rootDir>/*import "@@/scripts"
~<srcDir>/*import { toLowerCase } from "~/utils/strings"
@<srcDir>/*import { toLowerCase } from "@/utils/strings"

要添加自定义别名,请不要将它们添加到 tsconfig.json 中!而是使用 wxt.config.ts 中的 alias 选项

这样会在你下次运行 wxt prepare 时将自定义别名添加到 <rootDir>/.wxt/tsconfig.json 中。同时也会将别名添加到打包工具中,以便它能解析导入路径。

ts
import { resolve } from 'node:path';

export default defineConfig({
  alias: {
    // 目录:
    testing: resolve('utils/testing'),
    // 文件:
    strings: resolve('utils/strings.ts'),
  },
});
ts
import { fakeTab } from 'testing/fake-objects';
import { toLowerCase } from 'strings';