错误"自定义关键字定义无效:data.errors应该是布尔值"

Ish*_*tel 18 reactjs ajv create-react-app

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

create-react-app mysite.com
Run Code Online (Sandbox Code Playgroud)

安装后,当我尝试使用npm start和打开它时yarn 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)
Run Code Online (Sandbox Code Playgroud)

我该如何解决这个问题?

Rob*_*uez 25

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

npm uninstall ajv
npm install ajv@6.8.1
Run Code Online (Sandbox Code Playgroud)


小智 10

我认为这是"@ symfony/webpack-encore"的新内容:"^ 0.23.0".但是,ajv库存在问题.

脏修复:

node_modules\ajv-错误\ index.js

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

清洁修复(临时):

使用以下命令修改package.json:

"resolutions": {
    "ajv": "6.8.1"
}
Run Code Online (Sandbox Code Playgroud)


小智 9

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

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

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