npm run build завершается с ошибкой «Ошибка: определение пользовательского ключевого слова недопустимо: data.errors должно быть логическим» - PullRequest
0 голосов
/ 10 февраля 2019

Я вижу ошибку с npm, когда пытаюсь создать приложение VueJS.Я вижу эту ошибку на этапе build в GitLab CI.Мне не удалось найти упоминания об ошибке.Ранее я был в состоянии успешно запустить npm run build, и я не внес никаких изменений в код приложения Vue, поэтому я не уверен, что может быть причиной этой ошибки.

-  Building for production...
 ERROR  Error: custom keyword definition is invalid: data.errors should be boolean
Error: custom keyword definition is invalid: data.errors should be boolean
    at Ajv.addKeyword (/app/node_modules/ajv/lib/keyword.js:65:13)
    at module.exports (/app/node_modules/ajv-errors/index.js:10:7)
    at Object.<anonymous> (/app/node_modules/terser-webpack-plugin/node_modules/schema-utils/src/validateOptions.js:22:1)
    at Module._compile (internal/modules/cjs/loader.js:689:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:700:10)
    at Module.load (internal/modules/cjs/loader.js:599:32)
    at tryModuleLoad (internal/modules/cjs/loader.js:538:12)
    at Function.Module._load (internal/modules/cjs/loader.js:530:3)
    at Module.require (internal/modules/cjs/loader.js:637:17)
    at require (internal/modules/cjs/helpers.js:22:18)
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! code@0.1.0 build: `vue-cli-service build`
npm ERR! Exit status 1
npm ERR! 
npm ERR! Failed at the code@0.1.0 build script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR!     /root/.npm/_logs/2019-02-09T22_32_54_384Z-debug.log
The command '/bin/sh -c npm run build' returned a non-zero code: 1
ERROR: Job failed: exit code 1

Вот что яв моем файле Docker, который используется для создания приложения Vue:

# build stage
FROM node:10.14.2-jessie as build-stage
WORKDIR /app/
COPY frontend/package.json /app/
RUN npm cache verify
RUN npm install
COPY frontend /app/
RUN npm run build

Ответы [ 3 ]

0 голосов
/ 10 февраля 2019

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

Если вы используете пряжу

, добавьте ниже в package.json

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

, затем запустите yarn install

, если выиспользуйте npm

npm uninstall ajv
npm install ajv@6.8.1
0 голосов
/ 10 февраля 2019

Быстрое исправление:

Перейдите к зависимости ajv в папке node_modules:

node_modules/ajv/lib/keyword.js

закомментируйте строки 64 и 65:

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

, и это должно работать без побочных эффектов.

0 голосов
/ 10 февраля 2019

В нод-модулях я переименовал папку ajv в ajv1.Теперь я скопировал старую версию папки ajv в папку node-modules из другой установки.Это сработало.

...