Babel.js 如何设置craco config来处理'transformIgnorePatterns'以进行测试?

jhkqcmku  于 2023-02-17  发布在  Babel
关注(0)|答案(1)|浏览(217)

为了在使用Create React App 5的项目中运行测试,我需要为一些未传递的依赖项设置transformIgnorePatterns属性。
我可以从命令行执行此操作,如下所示:

npm run test -- --transformIgnorePatterns "node_modules/(?!(swiper|ssr-window|dom7)/)"

我可以在弹出后通过如下设置package.json中的jest属性来执行此操作:

{
  ...
  transformIgnorePatterns": [
    "[/\\\\]node_modules[/\\\\](?!(swiper|ssr-window|dom7/)\\.(js|jsx|mjs|cjs|ts|tsx)$",
    "^.+\\.module\\.(css|sass|scss)$"
  ],
  ...
}

我一直试图通过在craco.config.js中设置babel和jest属性的各种组合来对craco7.0.0-alpha.8(需要支持CRA的版本5和更高版本)执行相同的操作,但似乎它们根本不起作用 (我一直看到SyntaxError: Unexpected token 'export'错误,需要使用新设置来解决)

module.exports = {
  babel: {
    transformIgnorePatterns: [
    "/node_modules/(?!(swiper|ssr-window|dom7))"
    ],
  },
  jest: {
    transformIgnorePatterns: [
      "[/\\\\]node_modules[/\\\\](?!(swiper|ssr-window|dom7/)",
      "^.+\\.module\\.(css|sass|scss)$"
    ]
  }
}

在craco config中设置transformIgnorePatterns属性的正确方法是什么,以便在运行测试时正确编译必要的库?

ohtdti5x

ohtdti5x1#

根据official documentation,标准jest配置位于jest.configure下,因此您的配置应该如下所示

module.exports = {
  ...
  jest: {
    configure: {
      transformIgnorePatterns: [
        "[/\\\\]node_modules[/\\\\](?!(swiper|ssr-window|dom7/)",
        "^.+\\.module\\.(css|sass|scss)$"
      ]
    }
  }
}

(我可以验证这对resetMocks属性是否有效,但我还没有测试transformIgnorePatterns)。

相关问题