错误 "custom keyword definition is invalid: data.errors should be boolean"

Error "custom keyword definition is invalid: data.errors should be boolean"

我刚刚使用以下命令创建了一个新的 React 应用程序:

create-react-app mysite.com

安装后,当我尝试使用 npm startyarn start 打开它时,出现以下错误。

throw new Error('custom keyword definition is invalid: '  + this.errorsText(validateDefinition.errors));
      ^

Error: custom keyword definition is invalid: data.errors should be boolean
    at Ajv.addKeyword (/Users/myAccount/Documents/Dev/Projects/ReactJS/mysite.com/node_modules/ajv/lib/keyword.js:65:13)

我该如何解决这个问题?

我认为这是“@symfony/webpack-encore”带来的新东西:“^0.23.0”。但是,ajv 库存在问题。

脏修复:

node_modules\ajv-errors\index.js

将第 14 行的 errors: 参数从 'full' 更改为 true

彻底修复(临时):

使用以下方法修改您的 package.json

"resolutions": {
    "ajv": "6.8.1"
}

在第 64-65 行注释掉 node_modules/ajv/lib/keyword.js 以获得变通解决方案:

if (!validateDefinition(definition))
  throw new Error('custom keyword definition is invalid: '  + this.errorsText(validateDefinition.errors));

参考:https://github.com/webpack/webpack/issues/8768

恢复到 ajv 库的稳定版本也有效:

npm uninstall ajv
npm install ajv@6.8.1

当我尝试使用 npx 创建一个新的 nuxt 应用程序时出现此错误:

npx create-nuxt-app <project-name>

我做到了

npm uninstall ajv
npm install ajv@6.8.1 

就像@robert Rodriguez,它有效,没有错误。