Jest 在没有 webpack 的情况下配置 typescript

Posted

技术标签:

【中文标题】Jest 在没有 webpack 的情况下配置 typescript【英文标题】:Jest configure typescript without webpack 【发布时间】:2019-10-31 00:50:38 【问题描述】:

好吧,我正在用 typescript 编写一些 NPM 模块,但我没有使用 Webpack 来编译脚本。

我应该如何配置 jest 以使用 typescript 文件正常运行?

// test.spec.ts
import calc from './index'

test('shoud...', () => 
  expect(calc()).toBeDefined()
)
// index.ts
import calc from './index'

const calc = (a, b) => 
  return a + b


我收到了这个错误:

testMatch: /__tests__//*.js?(x),**/?(*.)+(spec|test).js?(x) - 0 个匹配项 testPathIgnorePatterns: /node_modules/ - 9 个匹配项

【问题讨论】:

【参考方案1】:

第 1 步:安装

npm i jest @types/jest ts-jest -D

说明:

安装 jest 框架(jest)

为 jest 安装类型 (@types/jest)

为 jest (ts-jest) 安装 TypeScript 预处理器,它允许 开玩笑地即时转换 TypeScript 并支持源映射 内置。

将所有这些保存到您的开发依赖项中(测试几乎总是 npm 开发依赖)

第 2 步:配置 Jest

将以下jest.config.js 文件添加到项目的根目录:

module.exports = 
  "roots": [
    "<rootDir>/src"
  ],
  "transform": 
    "^.+\\.tsx?$": "ts-jest"
  ,

说明:

我们始终建议将所有 TypeScript 文件放在 src 文件夹中 你的项目。

我们假设这是真的,并使用roots 选项指定它。转换配置只是告诉 jest 将 ts-jest 用于 ts / tsx 文件。笑话文档:https://jestjs.io/docs/en/configuration#transform-object-string-string

参考:https://basarat.gitbooks.io/typescript/docs/testing/jest.html

【讨论】:

以上是关于Jest 在没有 webpack 的情况下配置 typescript的主要内容,如果未能解决你的问题,请参考以下文章

使用 webpack 配置运行 Jest 测试

使用 webpack-hot-middleware 配置环境时,Jest 测试失败

为 Typescript、es6 和 Webpack 2 配置 Jest

在 Jest 测试中使用 Webpack 的 DefinePlugin 变量

Jest - Angular 9 - 类构造函数 SomeComponentClass 不能在没有'new'的情况下被调用

在没有 webpack 的情况下使用 VueJs 和 Typescript