开玩笑地在src目录之外进行移植

时间:2018-09-15 21:11:27

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

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

目录结构

root
 mainApp
   src...
 library
   greetings.js

在greetings.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文件中添加以下内容以供开玩笑

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

但是开玩笑仍然失败。任何帮助将不胜感激!

非常感谢

2 个答案:

答案 0 :(得分:0)

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

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

babel.config.js
module.exports = {}

答案 1 :(得分:0)

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

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

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