Ошибка неожиданного импорта маркера из компонента node_modules; Бабелл не может бежать?

Я пытаюсь понять, как заставить Jest работать в моей среде, и у меня возникает проблема, когда в этом проекте есть куча пользовательских компонентов в подкаталоге в node_modules.

Я получаю эту ошибку:



    FAIL  src/mantle/tools/searchindexer/apps/DataMover/js/components/__test__/GenericJobsTable.test.jsx
      ● Test suite failed to run

        /Users/rob/repos/mesa/ui/node_modules/iggy-common/components/IggyTable.jsx:1
        ({"Object.":function(module,exports,require,__dirname,__filename,global,jest){import React, {PropTypes} from "react";
                                                                                                 ^^^^^^
        SyntaxError: Unexpected token import

          at ScriptTransformer._transformAndBuildScript (node_modules/jest-runtime/build/ScriptTransformer.js:289:17)
          at Object. (src/mantle/tools/searchindexer/apps/DataMover/js/components/JobsTable/GenericJobsTable.jsx:7:18)
          at Object. (src/mantle/tools/searchindexer/apps/DataMover/js/components/__test__/GenericJobsTable.test.jsx:5:25)

    Test Suites: 1 failed, 1 total
    Tests:       0 total
    Snapshots:   0 total
    Time:        2.4s
    Ran all test suites matching "GenericJobsTable".

Я запускаю jest ^20.0.3 и babel-jest ^20.0.3 в NodeJS 7.7.1.

В моем пакете .json это раздел конфигурации jest:



      "jest": {
        "verbose": true,
        "transform": {
          "^.+\\.jsx$": "babel-jest"
        },
        "moduleFileExtensions": [
          "js",
          "jsx"
        ],
        "moduleDirectories": [
          "node_modules"
        ]
      }

У меня есть мой корень .babelrc, который определяется как:



    {
      "presets": ["es2015", "react"]
    }

Если я запустил jest --debug, я вижу следующее:



    {
      "config": {
        "automock": false,
        "browser": false,
        "cache": false,
        "cacheDirectory": "/var/folders/wz/hd_hp8zn6gq7p6816w1hwx640000gn/T/jest_dx",
        "clearMocks": false,
        "coveragePathIgnorePatterns": [
          "/node_modules/"
        ],
        "globals": {},
        "haste": {
          "providesModuleNodeModules": []
        },
        "moduleDirectories": [
          "node_modules"
        ],
        "moduleFileExtensions": [
          "js",
          "jsx"
        ],
        "moduleNameMapper": {},
        "modulePathIgnorePatterns": [],
        "name": "898fa528b40c10619090191345fdb241",
        "resetMocks": false,
        "resetModules": false,
        "rootDir": "/Users/rob/repos/mesa/ui",
        "roots": [
          "/Users/rob/repos/mesa/ui"
        ],
        "setupFiles": [
          "/Users/rob/repos/mesa/ui/node_modules/regenerator-runtime/runtime.js"
        ],
        "snapshotSerializers": [],
        "testEnvironment": "jest-environment-jsdom",
        "testMatch": [
          "**/__tests__/**/*.js?(x)",
          "**/?(*.)(spec|test).js?(x)"
        ],
        "testPathIgnorePatterns": [
          "/node_modules/"
        ],
        "testRegex": "",
        "testRunner": "/Users/rob/repos/mesa/ui/node_modules/jest-jasmine2/build/index.js",
        "testURL": "about:blank",
        "timers": "real",
        "transform": [
          [
            "^.+\\.jsx$",
            "/Users/rob/repos/mesa/ui/node_modules/babel-jest/build/index.js"
          ]
        ],
        "transformIgnorePatterns": [
          "/node_modules/"
        ]
      },
      "framework": "jasmine2",
      "globalConfig": {
        "bail": false,
        "coverageReporters": [
          "json",
          "text",
          "lcov",
          "clover"
        ],
        "expand": false,
        "mapCoverage": false,
        "noStackTrace": false,
        "notify": false,
        "projects": [
          "/Users/rob/repos/mesa/ui"
        ],
        "rootDir": "/Users/rob/repos/mesa/ui",
        "testPathPattern": "",
        "testResultsProcessor": null,
        "updateSnapshot": "new",
        "useStderr": false,
        "verbose": true,
        "watch": false,
       "watchman": true
      },
      "version": "20.0.3"
    }

Любая идея, что я мог бы неправильно сконфигурировать здесь?

Ответ 1

решаемые!!!!! Проблема заключалась в том, что один из этих надоедливых файлов в node_modules/iggy-common был простым файлом JS, нуждающимся в транспиляции:


  "jest": {
    "verbose": true,
    "transform": {
      "^.+\\.jsx$": "babel-jest",
      "^.+\\.js$": "babel-jest"
    },
    "moduleFileExtensions": [
      "js",
      "jsx"
    ],
    "moduleDirectories": [
      "node_modules"
    ],
    "transformIgnorePatterns": [
      "node_modules/(?!iggy-common)"
    ]      
  }