Jestjs ';意外的令牌导入';在CreateReact应用程序中测试时

Jestjs ';意外的令牌导入';在CreateReact应用程序中测试时,jestjs,create-react-app,Jestjs,Create React App,当我在我的项目文件夹中运行npm测试时,我收到一条错误消息说意外的令牌导入。 当我使用CreateReact应用程序时,我假设我不需要配置任何东西,因为一切都应该是开箱即用的 我不明白我是否在某个地方犯了错误,或者是create react应用程序问题。我认为这是因为您的巴别塔配置不正确 这不是create react app的问题 我把我的代码放在src/node_modules文件夹中,babel没有对其进行转换,因为它排除了node_modules对于任何从谷歌找到这个问题的人: 错误un

当我在我的项目文件夹中运行npm测试时,我收到一条错误消息说
意外的令牌导入
。 当我使用CreateReact应用程序时,我假设我不需要配置任何东西,因为一切都应该是开箱即用的


我不明白我是否在某个地方犯了错误,或者是create react应用程序问题。

我认为这是因为您的巴别塔配置不正确

这不是
create react app
的问题


我把我的代码放在
src/node_modules
文件夹中,babel没有对其进行转换,因为它排除了
node_modules

对于任何从谷歌找到这个问题的人:

错误
unexpected token import
通常是解析ES6代码时出错的标志,因为
import
不是早期版本的功能。通常,诸如Chrome之类的浏览器会运行ES6,但在运行测试时会遇到错误。因此,使用
create react app
运行
warn test
将暴露此错误

直接的解决方案是看看babel是如何编译ES6代码的。在上面的示例中,
create react app
附带了webpack和babel。但是,它们假定您的
节点\ u模块已经编译,并且在编译过程中跳过了这一点。所以,即使您的项目中有babel,出于某种原因,它并没有编译所有ES6


如果您正在使用一个不同的项目,而该项目没有webpack/babel预设置,或者为babel编写了一个自定义设置,那么您应该首先进行调查

我不必配置巴贝尔。这就是使用create-react-app的全部意义。你使用什么操作系统?linux debian。它有什么关系呢?如果它是类似linux的操作系统,理论上应该不会有任何问题。我也有同样的问题/解决方案。我的
node_modules
包含一个用ES6编写的依赖项,但没有编译。我以为babel安装会处理它,但是
create-react-app
不会在
node\u模块上运行babel/webpack