Javascript 开玩笑';项目';配置未在子文件夹中读取.babelrc和webpack.config.json

Javascript 开玩笑';项目';配置未在子文件夹中读取.babelrc和webpack.config.json,javascript,webpack,jestjs,babel-jest,Javascript,Webpack,Jestjs,Babel Jest,我需要一些帮助,在mono repo中配置与babel的jest 我的项目布局如下所示: src/some/path/packages /jest.config.js /a/src/jest.config.js /a/src/.babelrc /a/src/webpack.config.js

我需要一些帮助,在mono repo中配置与babel的jest

我的项目布局如下所示:

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 正确的.lrc文件

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

module.exports = {
    projects: [{
        rootDir: "<rootDir>/a/src",
        resolver: "jest-webpack-resolver"
    },
    {
        rootDir: "<rootDir>/b/src",
        resolver: "jest-webpack-resolver"
    }]
};
module.exports={
项目:[{
rootDir:“/a/src”,
解析程序:“jest网页包解析程序”
},
{
rootDir:“/b/src”,
解析程序:“jest网页包解析程序”
}]
};

但是也没有用。

我面临着完全相同的问题。我花了一段时间来计算这个put,但我用自己版本的
babeljest
解决了这个问题,这个版本名为
babeljest-nested

有了它,我可以在
jest.config.js
中指定根级别的项目:

module.exports = {
  projects: ['<rootDir>/packages/*']
}
然后,在project/package中,我只需在
jest.config.js
文件中执行此操作:

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

突然之间,一切都起了作用。魔法。

你找到答案了吗?不,很遗憾,我没有向jest提出问题,希望在
babel jest
中包含此功能:但是如果你需要覆盖某些配置,该怎么办?您需要进行深度克隆并合并基本配置和子配置?更新:现在最好使用这种方法:
module.exports = {
  ...require('../../jest.base.config.js')
}