首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ts-jest不会转译随动态导入导入的模块

ts-jest不会转译随动态导入导入的模块
EN

Stack Overflow用户
提问于 2021-11-13 08:50:54
回答 1查看 49关注 0票数 0

我在nodejs代码中使用动态导入来导入一些模块。例如:

代码语言:javascript
复制
const initialize = (await import('./init')).default;
await initialize();

但是当我运行jest时,它抛出了以下错误:

代码语言:javascript
复制
import sequelize from 'sequelize';
^^^^^^

SyntaxError: Cannot use import statement outside a module

我假设ts-jest不会转换/转译动态导入的代码。

我的jest.config.js文件包含:

代码语言:javascript
复制
/** @type {import('ts-jest/dist/types').InitialOptionsTsJest} */
module.exports = {
    preset: 'ts-jest',
    testEnvironment: 'node',
    rootDir: './src/test',
    globalSetup: '../setup/test_setup.ts',
};

请建议如何解决此问题

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-11-13 09:30:45

运行globalSetup代码时出现错误。不确定ts-jest是否不能转换globalSetup代码。

为了解决这个问题,我在test_setup.ts文件(包含globalSetup代码)的顶部添加了以下内容:

代码语言:javascript
复制
require('ts-node').register({ transpileOnly: true });

(https://github.com/kulshekhar/ts-jest/issues/411#issuecomment-850944698)

您需要安装ts-node才能使其正常工作。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69952792

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档