Jest - 如何使用babel-jest进行root斜杠导入?

时间:2017-02-27 11:27:32

标签: jestjs babeljs es6-modules babel-jest

我正在使用Babel Jest来转换我的代码以进行测试。 我无法获得如何使用相对于项目根目录的路径。

例如,如果在测试文件中我导入了一个模块:/imports/ui/myModule Jest会抛出错误

Cannot find module 
'/Users/me/dev/myProject/Users/me/dev/myProject/imports/ui/myModule' from 'test.jsx'`

但是如果我导入一个具有相对路径的模块,例如:../../ui/myModule就可以了。

我的.babelrc

{
  "plugins": [
    "transform-decorators-legacy",
    "transform-class-properties",
    "babel-root-slash-import"
  ],
  "presets": [
    "es2015",
    "react",
    "stage-0"
  ],
  "env": {
    "test": {
      "plugins": [
        "transform-decorators-legacy",
        "transform-class-properties",
        "babel-root-slash-import"
      ],
      "presets": [
        "es2015",
        "react",
        "stage-0"
      ]
    }
  }
}

我的Jest配置是:

  "jest": {
    "roots": ["<rootDir>/imports/tests/jest"]
  },

1 个答案:

答案 0 :(得分:0)

例如,您可以使用moduleNameMapper配置选项。

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

关于SO的相关答案:Testing with Jest and Webpack aliases

// package.json { "jest": { "roots": ["<rootDir>/imports/tests/jest"] }, "moduleNameMapper": [ "^ui/(.*)$": "<rootDir>/imports/ui/$1" ] } // test.jsx import myModule from 'imports/ui/myModule'; 官方文档中的另一个例子:https://facebook.github.io/jest/docs/en/webpack.html#configuring-jest-to-find-our-files