.babelrc breaking semantic-ui and next app



我不确定发生了什么,但是每当我想向我的应用程序添加单元测试时,我都必须使用以下代码添加.babelrc文件:

{
"presets": [
"es2015",
"next/babel"
]
}

在此之前,我不需要该文件,它只是一个带有语义的nextjs应用程序。目前为止,一切都好。直到我决定重建我的语义 ui 主题,结果证明这是一个巨大的错误!

这就是我跑的:cd semantic && gulp build

这导致我的应用程序在存在.babelrc时停止工作。

这些是我的package.json脚本:

"scripts": {
"dev": "next",
"build": "next build",
"start": "next start",
"semantic": "cd semantic && gulp build",
"test": "mocha --require babel-core/register --watch-extensions js **/*.test.js"
},

如果我尝试运行next相关的脚本,则会收到以下错误:

错误:不允许插件/预设文件导出对象,只允许导出函数。在/Users/theJuls/Workspace/cbt/client/node_modules/babel-preset-es2015/lib/index 中.js

如果我尝试运行我的单元测试,我会得到

错误:在"/Users/theJuls/Workspace/cbt/client/node_modules/next/babel.js">

中指定的插件 0 提供了无效的"default"属性(处理预设时:"/Users/theJuls/Workspace/cbt/client/node_modules/next/babel.js")

如果我删除.babelrc,所有next脚本都正常运行,但是我完全丢失了单元测试。为什么会这样?我该怎么做才能解决这个问题?

我不确定这是否相关,但这是我当前的文件结构:

api/
components/
config/
lib/
pages/
semantic/
store/
.babelrc
package-lock.json
package.json
semantic.json

我不确定为什么它突然坏了,但我已经找到了一种方法,这也是最新的方法,因为我以前的方法已被弃用。

首先,我必须安装以下模块:@babel/core@babel/register

.babelrc文件更改为如下所示:

{
"presets": [
"@babel/preset-env",
"next/babel"
]
}

最后,在package.json只需稍微将test命令更改为:

"test": "mocha --require @babel/register --watch-extensions js **/*.test.js">

由于我们现在正在使用@babel/register

这让一切恢复了正常。

最新更新