【发布时间】:2018-09-11 23:03:43
【问题描述】:
注意:我通过将我的 src/nod_modules 文件夹中的所有代码直接移动到 src 文件夹中并按照以下短线程删除 src/node_modules 来解决此问题:https://github.com/facebook/create-react-app/issues/4241
我正在使用 create-react-app 并且在运行 Jest 时遇到问题。
当我尝试将我的任何一个 React 组件导入我的测试文件时,当我 yarn test 时出现错误:
Test suite failed to run
.../src/node_modules/common/ErrorMessage.js:1
({"Object.<anonymous>":function(
module,exports,require,__dirname,__filename,global,jest)
{import React from 'react'
^^^^^^
SyntaxError: Unexpected token import
这是我的测试文件的样子:
// test.test.js
// attempting to import
import ErrorMessage from '../node_modules/common/ErrorMessage.js'
// dummy test
test('adds 1 + 2 to equal 3', () => {
expect(1 + 2).toBe(3)
})
但是,如果我位于 src 文件的根目录并导入我的 index.js,则不会引发错误。此时,错误会在 index.js 导入的第一个文件中引发。例如:
test.test.js
import index from './index'
index.js
import React from 'react'
import { render } from 'react-dom'
import './style/index.css'
import LoginContainer from './node_modules/user/LoginContainer'
import NewUser from './node_modules/user/NewUser'
// etc.
终端输出
FAIL src/test.test.js
● Test suite failed to run
/Users/hannahmccain/Desktop/DEV/expense-report/fullstack-expense-report/client/src/node_modules/user/LoginContainer.js:1
({"Object.<anonymous>":function(module,exports,require,__dirname,__filename,global,jest){import React, { Component } from 'react'
^^^^^^
SyntaxError: Unexpected token import
at ScriptTransformer._transformAndBuildScript (node_modules/jest-runtime/build/ScriptTransformer.js:289:17)
at Object.<anonymous> (src/index.js:11:164)
at Object.<anonymous> (src/test.test.js:3:14)
看起来,在 Jest 的上下文中,Babel 无法正确编译 src/node_modules 中的文件。我只是不知道如何纠正它!任何见解将不胜感激。
仅供参考,Jest 应该与 create-react-app 一起开箱即用,我不想弹出。如果不弹出,我将无法进行在其他地方推荐的某些更改,例如更新我的 package.json 中的 Jest 设置。
【问题讨论】:
标签: reactjs jestjs babeljs create-react-app