首页 > 解决方案 > 为什么 Jest 设置“transformIgnorePatterns”会导致 React 应用程序中的范围 CSS 导入出现问题?

问题描述

transformIgnorePatterns添加到 Jest 设置后,我的 React 应用程序的 Jest 测试出现导入问题。我在根 package.json 文件的“jest”部分中添加了以下默认设置:

"transformIgnorePatterns": [
  "/node_modules/",
  "\\.pnp\\.[^\\/]+$"
]

这导致我在 app.js 中的范围 CSS 导入出现问题。

import '@progress/kendo-theme-material/dist/all.css';

    ({"Object.<anonymous>":function(module,exports,require,__dirname,__filename,global,jest){@charset "UTF-8";
                                                                                             ^

    SyntaxError: Invalid or unexpected token

      1 | import AppRoutes from './routes/appRoutes';
      2 | import CssBaseline from '@material-ui/core/CssBaseline';
    > 3 | import '@progress/kendo-theme-material/dist/all.css';
        | ^
      4 |
      5 | // local imports
      6 | import './App.css';

      at Runtime.createScriptFromCode (node_modules/jest-runtime/build/index.js:1350:14)
      at Object.<anonymous> (src/App.js:3:1)

如果我注释掉那条 CSS 导入行,问题就会消失。是什么导致了这个问题,我该如何解决?

我将需要 babel 编译一个未编译的 node_module 以便 Jest 最终运行而不会出错,但我首先尝试解决这个问题。

标签: javascriptreactjsjestjsbabeljsbabel-jest

解决方案


推荐阅读