@ava/ typescript
这是为预编译TypeScript的项目而设计的. 它允许AVA加载所编译的JavaScript,同时配置AVA将TypeScript文件作为测试文件处理.
换句话说 你有测试文件 src/test.ts。您已经将类型脚本配置到输出到 build/。使用 @ava/typescript 您可以使用 npx ava src/test.ts。 。 。 .
与AVA 6, 7和8. 相容需要节点22.20, 24.12 或 25 (或更新).
启用类型脚本支持
将此软件包添加到您的工程中 :
npm install --save-dev @ava/typescript
然后,在 package.json 或者说 ava.config.*数字 :
package.json数字 :
{
"ava": {
"typescript": {
"rewritePaths": {
"src/": "build/"
},
"compile": false
}
}
}
键和值 rewritePaths 对象必须以 /。路径相对于您的工程目录.
您可以通过 compile 属性。 若为 false,AVA会假设你已经 整理了您的项目。 如果设置为 'tsc', AVA 将在运行测试前运行 TypeScript 编译器 。 这在表模式下使用AVA时可能效率低下.
输出文件预计将有 .js 扩展名.
AVA 搜索您的整个工程 *.js, (中文(简体) ), *.mjs, (中文(简体) ), *.ts 财务报告和审定财务报表 *.mts 文件 *(或您配置的其他扩展名) 。 它会忽略在 rewritePaths 目标(例如:. build/) (中文(简体) ). 如果您使用更具体的路径, 例如 build/main/,你可能需要改变AVA的 files 配置以忽略其他目录.
* AVA 6和7还将寻找 *.cjs 财务报告和审定财务报表 *.cts 文档.
ES 模块
与AVA 6和7,如果你 package.json 已经配置 "type": "module"或者你配置了AVA来治疗 js 扩展为 module,则 @ava/typescript 将导入输出文件为 ES 模块。 请注意,这是基于 输出文件,而不是 ts 扩展名.
AVA 8 将 永远 将所有文件导入为 ES 模块.
添加额外的扩展
您可以配置 AVA 以识别额外的文件扩展名 。 补充(部分)JSX支持:
package.json数字 :
{
"ava": {
"typescript": {
"extensions": ["ts", "tsx"],
"rewritePaths": {
"src/": "build/"
}
}
}
}
如果你使用 allowJs 类型脚本选项 需要说明 js, (中文(简体) ), cjs 财务报告和审定财务报表 mjs 将其重写为扩展 .
另见AVA的 extensions 选项。 。 。 .
† 注意到 保护 jSX 模式 没有被支持.