gpt4 book ai didi

typescript - Jest 不转换导入的 typescript

转载 作者:行者123 更新时间:2023-12-05 06:24:58 28 4
gpt4 key购买 nike

我没有使用 ts-jest。 According to this guide ,我不必为了测试我的 typescript 模块。

我有一个使用 jest 和 typescript 的简单项目设置。 You can see the code here .

当我运行 jest 时,我总是会收到如下错误:

[ts-test] jest
FAIL src/__test__/index.spec.ts
● Test suite failed to run

Jest encountered an unexpected token

This usually means that you are trying to import a file which Jest cannot parse, e.g. it's not plain JavaScript.

By default, if Jest sees a Babel config, it will use that to transform your files, ignoring "node_modules".

Here's what you can do:
• To have some of your "node_modules" files transformed, you can specify a custom "transformIgnorePatterns" in your config.
• If you need a custom transformation specify a "transform" option in your config.
• If you simply want to mock your non-JS modules (e.g. binary assets) you can stub them out with the "moduleNameMapper" config option.

You'll find more details and examples of these config options in the docs:
https://jestjs.io/docs/en/configuration.html

Details:

/Users/tconn/dev/ts-test/src/index.ts:9
static type = "something";
^

SyntaxError: Unexpected token =

> 1 | import Animal from '../index'
| ^
2 |
3 | describe('generate', () => {
4 | it('does something', () => {

at ScriptTransformer._transformAndBuildScript (../../../../usr/local/lib/node_modules/jest/node_modules/@jest/transform/build/ScriptTransformer.js:451:17)
at Object.<anonymous> (src/__test__/index.spec.ts:1:1)

Test Suites: 1 failed, 1 total
Tests: 0 total
Snapshots: 0 total
Time: 1.411s
Ran all test suites.

从本质上讲,导入的类似乎没有被转译为 JS,但测试是。正如 Jest 网站所指出的,我的 babel 配置中有正确的设置。

最佳答案

如果您缺少 babel 配置,或者 babel 配置没有 nodejs 解释您的代码所需的预设或插件,就会发生这种情况。评论Jest Getting Started: Using TypeScript看看你做错了什么。

  • 确保你的 babel 配置文件命名正确,例如babel.config.json 或 .babelrc.json 或 js、cjs、mjs,或在 package.json 中,如 Babel Config Files 中所述. Print the effective Babel config使用 BABEL_SHOW_CONFIG_FOR=src/__test__/index.spec.ts npx jest 确保正在使用您的 babel 文件。
  • 确保你的 babel 配置在预设中包含 @babel/preset-env@babel/preset-typescript,或者包含 @babel/plugin-transform-modules-commonjs 的一些其他预设插件等等。

关于typescript - Jest 不转换导入的 typescript ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57401931/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com