我需要一些帮助在单声道存储库中使用 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 正确的 .babelrc 文件
我还尝试将 packages/中的 jest.config.js 更改为:
module.exports = {
projects: [{
rootDir: "<rootDir>/a/src",
resolver: "jest-webpack-resolver"
},
{
rootDir: "<rootDir>/b/src",
resolver: "jest-webpack-resolver"
}]
};
但也无济于事。
最佳答案
我遇到了完全相同的问题。我花了一段时间才想出这个问题,但我设法用我自己的 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')
}
突然之间,一切都正常了。魔法。
关于javascript - Jest 'projects' 配置不读取子文件夹中的 .babelrc 和 webpack.config.json,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50511308/