2017-06-07 6 views
2

私は複数のモジュールを持つプロジェクトを持っています(Lernaを使用しています)。テストを実行するためにJestを使用したいと思います。私は(レルナ経由NPMリンクされたモジュール)共有モジュールを使用するコードをテストするときしかし、バベルが正しく適用されていないようだと、私は次のエラーを取得する:JSTはnpmリンクされたモジュールからインポートを翻訳できません

SyntaxError: Unexpected token import 

私のプロジェクトの構造はこのようなものです:

- my-project 
|- shared 
|- native 
|- web 

webnativesharedモジュールが必要です。私がsharedディレクトリに入り、Jestでローカルテストを実行すると、すべて正常に動作します。 webディレクトリでJestテストを実行すると、sharedから何かを含めるとすぐに上記のエラーが発生します。ここで

エラーが発生する超簡単なテストです:

import { util } from 'shared'; 

it('returns false if not prod',() => { 
    expect(util.isProd()).toBe(false); 
}); 

.babelrcは、次のようになります。

{ 
    "presets": [ 
     "env", 
     "flow", 
     "react" 
     ], 
    "plugins": [ 
     "flow-react-proptypes", 
     "transform-object-rest-spread", 
     "transform-class-properties" 
    ] 
} 

私は含めて、私は見つけることができるすべてのものを試してみました:

  • es2015がプリセットされ、有効になっているものを含む、異なるBabelの設定。上述したように、テスト環境
  • 用手動バベル、冗談
  • ためtransformオプションを設定する、冗談は、このように、冗談とbabel-jestも同様にそこにインストールされている、sharedモジュールで実行することができます。

答えて

3

私はwebモジュールのpackage.jsonに冗談のtransformIgnorePatterns設定オプションを変更しなければなりませんでした。

{ 
    "jest": { 
     "transformIgnorePatterns": [ 
      "<rootDir>/node_modules/(?!shared|another)" 
     ] 
    }, 
} 
関連する問題