【问题标题】:getting jest to transpile outside of src directory让 jest 转译到 src 目录之外
【发布时间】:2019-02-20 06:23:48
【问题描述】:

我有一个 monorepo 设置,其中运行测试的项目试图从当前工作目录之外加载文件。

目录结构

root
 mainApp
   src...
 library
   greetings.js

在greeting.js中

export  const greetings = "hello World!"

每次我尝试从 mainApp 测试文件中的 greetings.js 导入时

//mainApp.test.js
import {greetings} from "../../greetings.js";

我在控制台中收到 Jest 的错误

Jest encountered an unexpected token
SyntaxError: Unexpected token export

以下网址中的一个解决方案是将 .babelrc 添加到库文件夹 https://github.com/coryhouse/react-slingshot/issues/455

我有很多库,向每个库添加 .babelrc 并不是那么干净。有没有其他/更好的方法来实现这一点。

我什至尝试在 setUp.js 文件中为 jest 添加以下内容

require('babel-register')({
  plugins: ['transform-es2015-modules-commonjs'],
  presets: ['env']
});

但是玩笑还是失败了。任何帮助将不胜感激!

非常感谢

【问题讨论】:

  • 你的包里面的 jest 配置和你的 babel 配置怎么样?

标签: node.js reactjs jestjs es6-modules babel-jest


【解决方案1】:

在我的情况下,babel-jest 找不到它的配置文件,这可以通过在 Jest configuration 中配置 transform 属性来解决。

babel-jest 显式设置babel-jest configFile 属性的示例:

transform: {
 '^.+\\.[jt]sx?$': [
   'babel-jest', { configFile: path.resolve(__dirname, 'config/babel.config.js') }
  1] 
},

【讨论】:

    【解决方案2】:

    我遇到了同样的问题,发现了这个comment

    将 .babelrc 重命名为 babel.config.js 并导出您的配置。

    babel.config.js
    module.exports = {}

    【讨论】:

      猜你喜欢
      • 2017-10-29
      • 2021-10-27
      • 2018-11-27
      • 2020-03-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多