Jest在使用'amchart5'导入时遇到意外标记

uhry853o  于 2022-12-08  发布在  Jest
关注(0)|答案(1)|浏览(154)

我在使用amchart5集成进行jest测试时遇到此错误。

Details:

    C:\Users\BASHIMX5\Projects\Bitbucket\hf-ui\node_modules\@amcharts\amcharts5\index.js:1
    ({"Object.<anonymous>":function(module,exports,require,__dirname,__filename,jest){export { Root } from "./.internal/core/Root";
                                                                                      ^^^^^^

    SyntaxError: Unexpected token 'export'

      2 |
      3 | import { ImplantReportComponent } from './implant-report.component';
    > 4 | import * as am5 from '@amcharts/amcharts5';
        | ^
      5 | import * as am5xy from '@amcharts/amcharts5/xy';
      6 | import am5themes_Animated from '@amcharts/amcharts5/themes/Animated';
      7 |

      at Runtime.createScriptFromCode (../../node_modules/jest-runtime/build/index.js:1728:14)
      at Object.<anonymous> (src/app/pages/patient-account-management/component/implant-report/implant-report.component.spec.ts:4:1)

jest.preset:

const nxPreset = require('@nrwl/jest/preset').default;

module.exports = {
    ...nxPreset,
    testMatch: ['**/+(*.)+(spec|test).+(ts|js)?(x)'],
    transform: {
      '^.+\\.(ts|mjs|js|html)$': 'jest-preset-angular'
    },
    transformIgnorePatterns: ['node_modules/(?!.*\\.mjs$)',  "[/\\\\]node_modules[/\\\\](?!(@amcharts)\\/).+\\.js$",  "^.+\\.module\\.(css|sass|scss)$"],
    resolver: '@nrwl/jest/plugins/resolver',
    coverageReporters: ['text', 'text-summary', "html", "cobertura"],
    moduleFileExtensions: ['ts', 'js', 'html'],
    globals: {
        crypto: require('crypto'),
        'ts-jest': {
            tsconfig: '<rootDir>/tsconfig.spec.json',
            stringifyContentPathRegex: '\\.(html|svg)$',
        },
    },
    snapshotSerializers: [
        'jest-preset-angular/build/serializers/no-ng-attributes',
        'jest-preset-angular/build/serializers/ng-snapshot',
        'jest-preset-angular/build/serializers/html-comment',
    ],
    "reporters": ["default", "jest-junit"]
};

嘲弄:

node_modules/
__mocks__/
├─ @amcharts/
│  ├─ amcharts5/
│  │  ├─ themes/
│  │  │  ├─ Animated.js
│  │  ├─ index.js
│  │  ├─ xy.js

但是得到上面的错误。有什么帮助吗?我花了另外24小时来修复。但是没有运气。我正在运行nx worksapce。

46scxncf

46scxncf1#

我可以通过删除transformIgnorePatterns设置中的es6模块regex来解决这个问题。此外,如果您有其他库/应用程序使用此库,它们也需要在其transformIgnorePatterns中具有相同的regex设置。

const nxPreset = require('@nrwl/jest/preset').default;

module.exports = {
    ...nxPreset,
    testMatch: ['**/+(*.)+(spec|test).+(ts|js)?(x)'],
    transform: {
      '^.+\\.(ts|mjs|js|html)$': 'jest-preset-angular'
    },
    transformIgnorePatterns: ['[/\\\\]node_modules[/\\\\](?!(@amcharts)\\/).+\\.js$', '^.+\\.module\\.(css|sass|scss)$'],
    resolver: '@nrwl/jest/plugins/resolver',
    coverageReporters: ['text', 'text-summary', "html", "cobertura"],
    moduleFileExtensions: ['ts', 'js', 'html'],
    globals: {
        crypto: require('crypto'),
        'ts-jest': {
            tsconfig: '<rootDir>/tsconfig.spec.json',
            stringifyContentPathRegex: '\\.(html|svg)$',
        },
    },
    snapshotSerializers: [
        'jest-preset-angular/build/serializers/no-ng-attributes',
        'jest-preset-angular/build/serializers/ng-snapshot',
        'jest-preset-angular/build/serializers/html-comment',
    ],
    "reporters": ["default", "jest-junit"]
};

相关问题