ts-jest 不转译使用动态导入导入的模块
ts-jest is not transpiling modules imported with Dynamic Imports
我在我的 nodejs 代码中使用动态导入来导入一些模块。例如:
const initialize = (await import('./init')).default;
await initialize();
但是当我运行jest
时,它会抛出以下错误:
import sequelize from 'sequelize';
^^^^^^
SyntaxError: Cannot use import statement outside a module
我假设 ts-jest
不是 transforming/transpiling 动态导入的代码。
我的 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',
};
请教如何解决这个问题
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
才能正常工作。
我在我的 nodejs 代码中使用动态导入来导入一些模块。例如:
const initialize = (await import('./init')).default;
await initialize();
但是当我运行jest
时,它会抛出以下错误:
import sequelize from 'sequelize';
^^^^^^
SyntaxError: Cannot use import statement outside a module
我假设 ts-jest
不是 transforming/transpiling 动态导入的代码。
我的 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',
};
请教如何解决这个问题
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
才能正常工作。