【问题标题】:Jest 'projects' configuration does not read .babelrc and webpack.config.json in subfolderJest 'projects' 配置不读取子文件夹中的 .babelrc 和 webpack.config.json
【发布时间】:2018-11-03 19:07:59
【问题描述】:

我需要一些帮助,在单声道 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,我无法弄清楚如何开玩笑 正确的 .babelrc 文件

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

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

但也无济于事。

【问题讨论】:

  • 你解决了吗?
  • 不,遗憾的是还没有

标签: javascript webpack jestjs babel-jest


【解决方案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')
}

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

【讨论】:

猜你喜欢
  • 2020-06-26
  • 2018-05-21
  • 1970-01-01
  • 1970-01-01
  • 2018-01-08
  • 2013-05-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多