首页 > 解决方案 > 更新到 jest 24 后 transformIgnorePatterns 不起作用

问题描述

我刚刚更新到 jest 24,它似乎transformIgnorePatterns不起作用。

这是我收到的错误:

/Users/lemoustachiste/work/frontend/node_modules/my-untranspiled-package/build/bundle.js:7948
    export default Package$1;
    ^^^^^^

    SyntaxError: Unexpected token export

开玩笑的配置:

module.exports = {
  'modulePaths': [
    '<rootDir>/src/',
    '<rootDir>/node_modules'
  ],
  'transformIgnorePatterns': [
    'node_modules/(?!(my-untranspiled-package)/)'
  ],
  'transform': {
    '^.+\\.(ts|tsx)$': 'ts-jest',
    '^.+\\.(js|jsx)$': 'babel-jest',
    '^.+\\.(scss|ico)$': '<rootDir>/tests/importStub.js'
  },
  'setupFiles': [
    '<rootDir>/tests/jest-aurelia.config.ts'
  ],
  'setupFilesAfterEnv': ['<rootDir>/tests/jest-framework.config.ts'],
  'testRegex': '\\.(test|spec)\\.(ts|js)x?$',
  'globals': {
    'ts-jest': {
      'diagnostics': false
    }
  }
};

该项目仍然为 babel 6 配置。它与 Jest 23 一起工作正常。

标签: javascriptjestjs

解决方案


所以我从更新到 babel 7 开始,但仍然遇到了这个问题。然后我发现了这个评论:https ://github.com/facebook/jest/issues/7578#issuecomment-451671656

指向文档的这一部分:https ://jestjs.io/docs/en/getting-started#using-babel

果然,从 package.json 中提取 babel 配置到它自己的文件中解决了这个问题。


推荐阅读