错误“自定义关键字定义无效:data.errors应该为布尔值”

时间:2019-02-09 23:10:16

标签: reactjs create-react-app ajv

我刚刚使用以下命令创建了一个新的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)

如何解决此问题?

4 个答案:

答案 0 :(得分:25)

恢复到稳定版本的ajv库也可以:

npm uninstall ajv
npm install ajv@6.8.1

答案 1 :(得分:10)

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

肮脏的修复程序:

  

node_modules \ ajv-errors \ index.js

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

清洁修复程序(临时):

使用以下方法修改 package.json

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

答案 2 :(得分:9)

在第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

答案 3 :(得分:3)

尝试使用npx制作新的nuxt应用程序时出现此错误:

npx create-nuxt-app <project-name>

我做到了

npm uninstall ajv
npm install ajv@6.8.1 

就像@robert Rodriguez一样,它可以正常工作,没有错误。