【问题标题】:ts-jest is not transpiling modules imported with Dynamic Importsts-jest 不转译使用动态导入导入的模块
【发布时间】:2021-11-13 17:30:44
【问题描述】:

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

const initialize = (await import('./init')).default;
await initialize();

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

import sequelize from 'sequelize';
^^^^^^

SyntaxError: Cannot use import statement outside a module

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

我的jest.config.js 文件有:

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

请就如何解决这个问题提出建议

【问题讨论】:

    标签: jestjs ts-jest


    【解决方案1】:

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

    为了解决此问题,我将其添加到 test_setup.ts 文件的顶部(其中包含 globalSetup 代码):

    require('ts-node').register({ transpileOnly: true });
    

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-07-15
      • 2021-05-15
      • 1970-01-01
      • 2019-02-09
      • 1970-01-01
      • 2018-03-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多