Jest' projects'配置不会在子文件夹中读取.babelrc和webpack.config.json

时间:2018-05-24 14:01:30

标签: javascript webpack jestjs babel-jest

我需要一些帮助,在单声道回购中使用babel配置玩笑,

我的项目布局如下:

src/some/path/packages
                      /jest.config.js
                      /a/src/jest.config.js
                      /a/src/.babelrc
                      /a/src/webpack.config.js
                      /b/src/jest.config.js
                      /b/src/webpack.config.js

和我的根jest.config.js:

module.exports = {
    projects: ["./a/src/jest.config.js", "/b/src/jest.config.js"]
};

a / src / jest.config.js:

module.exports = {
    resolver: "jest-webpack-resolver"
};

你可以看到我正在使用webpack解析器,因为我的webpack.config.js文件中有别名

如果我在./a/src中调用jest,它的效果非常好 但如果我把它叫做包装呢

  • 无法解析模块和
  • ES6导入无法正常工作,我收到了SyntaxError(显然找不到.babelrc)

我想防止必须安装babel / jest /    应用程序中的webpack,我无法弄清楚如何使用jest    正确的.babelrc文件

我还尝试将packages /中的jest.config.js更改为:

module.exports = {
    projects: [{
        rootDir: "<rootDir>/a/src",
        resolver: "jest-webpack-resolver"
    },
    {
        rootDir: "<rootDir>/b/src",
        resolver: "jest-webpack-resolver"
    }]
};

但也无济于事。

1 个答案:

答案 0 :(得分:1)

我正面临着完全相同的问题。我花了一些时间来计算这个看跌期权,但是我设法用自己的babel-jest版本babel-jest-nested解决了这个问题:

https://github.com/lehni/babel-jest-nested

这样,我可以在jest.config.js的根级别指定我的项目:

module.exports = {
  projects: ['<rootDir>/packages/*']
}

我在每个项目/程序包将要加载的根级别上也有一个jest.base.config.js

module.exports = {
  transform: {
    '^.+\\.jsx?$': 'babel-jest-nested'
  },
  testMatch: [
    '**/src/**/?(*.)+(test).js'
  ]
}

然后,在项目/包中,我再次在jest.config.js文件中执行此操作:

module.exports = {
  ...require('../../jest.base.config.js')
}

突然间,一切正常。魔术。