语法错误:无法在模块 ts-jest 之外使用 import 语句

问题描述 投票:0回答:1

我正在使用 TypeScript、ESM、npm 和 ts-jest。不幸的是,似乎transformIgnorePatterns 不起作用。

我尝试了多种配置,但没有任何配置可以帮助我成功地使用 ts-jest 运行 Jest。唯一有效的解决方法是直接在 node_modules 中用 require 替换导入,但这不是一个可行的最终解决方案。

错误是: logs

我的package.json有“type”:“module”。我正在使用 npm 工作区,我在根目录中的设置与我的子包中的设置非常相似:

jest.config.ts

export default {
  preset: 'ts-jest/presets/default-esm',
  testEnvironment: 'node',
  testMatch: ['**/*.spec.ts'],
  transform: {
    '^.+\\.tsx?$': ['ts-jest']
  },
  transformIgnorePatterns: ['/node_modules/(?!log-symbols|picocolors)']
};

ts.config.json

{
    "compilerOptions": {
        "target": "ES2022",
        "module": "ESNext",
        "moduleResolution": "node",
        "declaration": true,
        "strict": true,
        "incremental": true,
        "esModuleInterop": true,
        "skipLibCheck": true,
        "forceConsistentCasingInFileNames": true,
        "composite": true,
        "types": ["node", "jest"],
        "allowImportingTsExtensions": true,
        "allowJs": true,
        "noEmit": true,
    },
    "ts-node": {
        "esm": true
    },
    "exclude": ["node_modules"]
}

我已经尝试了带有transformIgnorePatterns、目标和模块值的各种配置。此问题不仅出现在 picocolors 中,也出现在粉笔(版本 5 和 4)中。

typescript jestjs es6-modules ts-jest
1个回答
0
投票

我没有想出有效的解决方案。最后,我决定停止使用日志符号,并选择 picocolors 而不是粉笔。

对于 piccolors 无需

transformIgnorePatterns

即可使用

For piccolors It works even withhout transformIgnorePatterns

© www.soinside.com 2019 - 2024. All rights reserved.