【问题标题】:Jest says SyntaxError: Unexpected token export - React, Material.io开玩笑说 SyntaxError: Unexpected token export - React, Material.io
【发布时间】:2020-01-24 22:57:19
【问题描述】:

我正在使用 React、Google Material IO 组件来构建应用程序。在我为我的测试运行 JEST 时,我看到了下面提到的这个错误。

Jest encountered an unexpected token

This usually means that you are trying to import a file which Jest cannot parse, e.g. it's not plain JavaScript.

By default, if Jest sees a Babel config, it will use that to transform your files, ignoring "node_modules".

Here's what you can do:
 • To have some of your "node_modules" files transformed, you can specify a custom "transformIgnorePatterns" in your config.
 • If you need a custom transformation specify a "transform" option in your config.
 • If you simply want to mock your non-JS modules (e.g. binary assets) you can stub them out with the "moduleNameMapper" config option.

You'll find more details and examples of these config options in the docs:
https://jestjs.io/docs/en/configuration.html

Details:

C:\Users\sganesh\Documents\gateway-web\packages\payments\node_modules\@material\textfield\helper-text\index.js:23
export * from './component';
^^^^^^

SyntaxError: Unexpected token export

  2 | import { useState, useEffect, useRef } from "react";
  3 | import { MDCTextField } from "@material/textfield";
> 4 | import { MDCTextFieldHelperText } from "@material/textfield/helper-text";
    | ^
  5 | import { MDCChipSet } from "@material/chips";
  6 | import { MDCFloatingLabel } from "@material/floating-label";
  7 | import { MDCTextFieldCharacterCounter } from '@material/textfield/character-counter';

  at ScriptTransformer._transformAndBuildScript (node_modules/@jest/transform/build/ScriptTransformer.js:537:17)
  at ScriptTransformer.transform (node_modules/@jest/transform/build/ScriptTransformer.js:579:25)
  at Object.<anonymous> (src/PaymentContainer/PaymentDetails/common/ChipInput/ChipInput.tsx:4:1)

Jest 配置如下:-

const base = require('../jest.config.base.js')

// Individual pod can add their add own custom jest config 
module.exports = {
  ...base,
  "setupFiles": ['<rootDir>/src/setupTests.ts'],
  transformIgnorePatterns: [
    "<rootDir>/node_modules/?!(@rmwc|@material)/"
  ]
};

基本 Jest 配置是:

    module.exports = {
  roots: ["<rootDir>/src"],
  transform: {
    "^.+\\.(ts|tsx)$": "ts-jest",
    ".+\\.(css|scss)$": "<rootDir>/node_modules/jest-css-modules-transform"
  },
  moduleFileExtensions: [
    "ts",
    "tsx",
    "js",
    "tsx"
  ],
  "snapshotSerializers": ["enzyme-to-json/serializer"],
  verbose: true
};

【问题讨论】:

    标签: reactjs typescript jestjs babel-jest mdc


    【解决方案1】:

    尝试不使用&lt;rootDir&gt;

      transformIgnorePatterns: [
        'node_modules/?!(@rmwc|@material)/'
      ]
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-06-24
      • 1970-01-01
      • 2022-10-07
      • 2021-08-02
      • 1970-01-01
      • 2017-01-30
      • 2021-07-04
      • 1970-01-01
      相关资源
      最近更新 更多