代码转换
Jest 会在项目里以原始的 JavaScript 执行,所以如果你用了一些 Node 环境不支持的语法 (比如 JSX, TypeScript, Vue 模板语法),那就要把你的代码转译成原始的 JavaScript,这就跟你在构建浏览器前端代码时要做的转译工作一样。
Jest 提供 transform
配置来支持 Js 转译。
转译器(Transformer) 是一个能提供转译源代码能力的模块。 举个例子,假如你想在你的业务和测试代码中使用一些还没被 Node 支持的新语言特性,你可以引入一个代码预处理器来将新版本的 JavaScript 转译成当前支持的版本。
Jest将会缓存转换后 的结果,并且试图让多方因素(比如正在转换的文件源和配置信息被修改等)造成的结果无效
默认值
Jest ships with one transformer out of the box – babel-jest
. 它会加载你项目的 Babel 配置,然后转译所有能正确匹配 /\.[jt]sx?$/
正则表达式的文件(也即所有 .js
,.jsx
,.ts
或 .tsx
文件)。 此外,babel-jest
还将会注入 ES Module mocking中所提到的Babel插件。
tip
记住,如果你想将它和其他代码预处理器一起使用,那必须要显式地引入默认的 babel-jest
转译器,
"transform": {
"\\.[jt]sx?$": "babel-jest",
"\\.css$": "some-css-transformer",
}