ОШИБКА в несоответствии версии метаданных для модуля node_modules/angular-2-local-storage/dist/index.d.ts, найдена версия 4, ожидается 3

Я использую приложение Angular2 и получаю ошибку ниже npm start команда. это полная ошибка кода в несоответствии версии метаданных для модуля /home/x/Desktop/koohbaad-web/node_modules/angular-2-local-storage/dist/index.d.ts, найдена версия 4, ожидается 3, разрешен символ AppModule в /home/x/Desktop/koohbaad-web/src/app/app.module.ts, разрешение символа AppModule в /home/x/Desktop/koohbaad-web/src/app/app.module.ts, разрешение символа AppModule в /home/x/Desktop/koohbaad-web/src/app/app.module.ts

Вот мой файл package.json

{
  "name": "koohbad-tour",
  "version": "0.0.0",
  "license": "MIT",
  "scripts": {
    "ng": "ng",
    "start": "ng serve --host 192.168.1.193",
    "build": "ng build",
    "test": "ng test",
    "lint": "ng lint",
    "e2e": "ng e2e"
  },
  "private": true,
  "dependencies": {
    "@agm/core": "^1.0.0-beta.0",
    "@angular/animations": "^4.*",
    "@angular/common": "^4.0.0",
    "@angular/compiler": "^4.0.0",
    "@angular/core": "^4.0.0",
    "@angular/forms": "^4.0.0",
    "@angular/http": "^4.0.0",
    "@angular/platform-browser": "^4.0.0",
    "@angular/platform-browser-dynamic": "^4.0.0",
    "@angular/router": "^4.0.0",
    "@types/underscore": "^1.8.0",
    "angular-2-local-storage": "*",
    "angular-star-rating": "^3.0.8",
    "angular2-masonry": "^0.4.0",
    "angular2-recaptcha": "*",
    "angular2-text-mask": "^8.0.1",
    "core-js": "^2.4.1",
    "enhanced-resolve": "^3.3.0",
    "jquery": "^3.2.1",
    "ng-lazyload-image": "^3.3.3",
    "ng-select": "^1.0.0-beta.5",
    "ng2-select2": "^1.0.0-beta.10",
    "ngx-infinite-scroll": "^0.5.1",
    "node-sass": "^4.7.2",
    "rxjs": "^5.1.0",
    "screenfull": "^3.3.1",
    "underscore": "*",
    "web-animations-js": "^2.2.5",
    "zone.js": "^0.8.4",
    "ngx-swiper-wrapper": "4.0.0"
  },
  "devDependencies": {
    "@angular/cli": "1.0.0",
    "@angular/compiler-cli": "^4.0.0",
    "@types/jasmine": "2.5.38",
    "@types/jquery": "^2.0.42",
    "@types/node": "~6.0.60",
    "codelyzer": "~2.0.0",
    "jasmine-core": "~2.5.2",
    "jasmine-spec-reporter": "~3.2.0",
    "karma": "~1.4.1",
    "karma-chrome-launcher": "~2.0.0",
    "karma-cli": "~1.0.1",
    "karma-coverage-istanbul-reporter": "^0.2.0",
    "karma-jasmine": "~1.1.0",
    "karma-jasmine-html-reporter": "^0.2.2",
    "ngx-dropzone-wrapper": "^4.0.3",
    "protractor": "~5.1.0",
    "ts-node": "~2.0.0",
    "tslint": "~4.5.0",
    "typescript": "~2.2.0"
  }
}

И ошибка, которую я получаю,

ОШИБКА в несоответствии версии метаданных для модуля node_modules / angular-2-local-storage / dist / index.d.ts, найдена версия 4, ожидается 3

Пожалуйста, помогите мне.

3 ответа

Это вызвано тем, что angular-2-local-storage была построена с использованием Angular 5 и она генерировала файлы метаданных версии 4 (что ваш компилятор не может понять, потому что ваш проект angular 4 может только читать файлы метаданных до версии 3). Я рекомендую вам обновите свой проект до Angular 5 и попробуйте снова

В вашем файле package.json есть ошибка, в angular-2-local-storage нет номера версии. Так должно быть "angular-2-local-storage": "^2.0.0"

Пожалуйста, попробуйте впоследствии удалить каталог node_modules и снова установить npm.

Произошла ошибка Angular-2-local-storage, потому что в файле package.json эта зависимость имеет пустое значение, и ожидаемая версия для этой зависимости равна 3. Итак, попробуйте установить эту зависимость снова, используя команду npm install dependencyName. (в вашем случае зависимость - это angular-2-local-storage)

Если безуспешно, то явно измените package.json для angular2-local-storage и присвойте ему значение 3.0

Что касается ошибки node-sass, то это то, что мы получаем при создании новых проектов на компьютере. Это предположение, как это случилось со мной, когда я впервые установил angular cli и запустил приложение, используя ng serve. Я думаю, что это проблема не обновленных модулей или Cli.

Попробуйте обновить узлы модулей angular-cli и затем запустите приложение. Если проблема не устранена, перейдите на страницу github для angular, где я думаю, что эта проблема была указана.

Если по какой-то причине (по времени) вы не можете обновить свой проект Angular 4 до Angular 5, я рекомендую поискать этот подход для устранения этой ошибки без миграции. Используйте утилиту исправления несоответствия для изменения версии файлов метаданных.

  1. В проекте Angular 4 установите модуль исправления несоответствия, чтобы разработать зависимость

    npm i @jagcolombat/repair-mismatch --save-dev

  2. Создайте файл JavaScript, например, rpmm.js, и введите следующий фрагмент кода:

    const rpmm = require('repair-mismatch');
    rpmm({ modules: ['ngx-vis'] });

Примечание. В этом случае я использую ngx-vis@1.0.1 (скомпилировано с Angular 6) и хочу использовать это в проекте Angular 4.

  1. Запустите эту команду для изменения версии метаданных в указанных модулях (ngx-vis)

    node rpmm.js

Для более подробной информации читайте эту статью:

https://medium.com/@tonytunes2005/solving-error-mismatch-beetwen-angular-versions-b051e7cde418

Другие вопросы по тегам