2017-05-18 24 views
10

Tôi đang cố gắng tìm ra cách để Jest làm việc trong môi trường của mình và tôi đang gặp vấn đề trong đó dự án này có một loạt các thành phần tùy chỉnh trong thư mục con trong node_modules.Nhập mã thông báo không mong muốn Jest từ thành phần node_modules; babel không chạy?

Tôi nhận được lỗi này:



    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". 

Tôi đang chạy jest ^20.0.3babel-jest ^20.0.3 trên NodeJS 7.7.1.

Trong package.json tôi, đây là phần cấu hình jest tôi có:



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

Tôi đã mục gốc của tôi .babelrc định nghĩa là:



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

Nếu tôi chạy jest --debug Tôi thấy điều này:



    { 
     "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" 
    } 

Bất kỳ ý tưởng nào tôi có thể đã định cấu hình sai ở đây?

+0

Từ những gì tôi thu thập được, có vẻ như phải có vấn đề với jest-babel không transpiling bất cứ điều gì bên dưới thư mục node_modules ... nhưng tôi * DO * muốn nó để transpile bất cứ điều gì dưới node_modules/iggy-common –

Trả lời

16

SOLVED !!!!! Vấn đề đã bị tổn thương do một trong những tệp pesky đó trong node_modules/iggy-common là một tập tin JS đơn giản cần phải chuyển đổi:


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

Các vấn đề liên quan