Sweetalert не запущен, у меня ошибка TS-файла

Я поддерживаю приложение с Angular 7.0.7 и Node 10.20.1. У меня все заработало, я давно установил Sweetalert, и плагин работал нормально. Вчера мой компьютер перезагрузился, и когда я запустил ng serve, я получил эту ошибку

ОШИБКА в node_modules / sweetalert2 / sweetalert2.d.ts (277,39): ожидается ошибка TS1005: ','. node_modules / sweetalert2 / sweetalert2.d.ts (277,68): ошибка TS1011: выражение доступа к элементу должно принимать аргумент. node_modules / sweetalert2 / sweetalert2.d.ts (277,69): ошибка TS1005: ';' ожидал. node_modules / sweetalert2 / sweetalert2.d.ts (277,70): ошибка TS1128: ожидается объявление или инструкция. node_modules / sweetalert2 / sweetalert2.d.ts (277,82): ошибка TS1005: '(' ожидается.

Это мой package.json

{
  "name": "frontend",
  "version": "0.0.0",
  "scripts": {
    "ng": "ng",
    "start": "ng serve --proxy-config proxy.conf.json",
    "build": "ng build",
    "test": "ng test",
    "lint": "ng lint",
    "e2e": "ng e2e",
    "test2": "ng test"
  },
  "private": true,
  "dependencies": {
    "@angular/animations": "^7.0.4",
    "@angular/cdk": "^7.3.0",
    "@angular/common": "~7.0.0",
    "@angular/compiler": "~7.0.0",
    "@angular/core": "~7.0.0",
    "@angular/forms": "~7.0.0",
    "@angular/http": "~7.0.0",
    "@angular/material": "^7.3.0",
    "@angular/material-moment-adapter": "^9.2.3",
    "@angular/platform-browser": "~7.0.0",
    "@angular/platform-browser-dynamic": "~7.0.0",
    "@angular/router": "~7.0.0",
    "@fortawesome/fontawesome-free": "^5.13.0",
    "@sweetalert2/theme-material-ui": "^3.1.4",
    "bootstrap": "^4.2.1",
    "core-js": "^2.5.4",
    "devextreme": "^18.2.5",
    "flagkit-web": "0.0.3",
    "font-awesome": "^4.7.0",
    "hammerjs": "^2.0.8",
    "intro.js": "^2.9.3",
    "ionicons": "^4.5.5",
    "moment": "^2.25.3",
    "ngx-bootstrap": "^5.5.0",
    "ngx-toastr": "^10.0.4",
    "pixeden-stroke-7-icon": "^1.2.3",
    "rxjs": "~6.3.3",
    "sweetalert2": "^9.14.0",
    "xlsx": "^0.15.6",
    "zone.js": "~0.8.26"
  },
  "devDependencies": {
    "@angular-devkit/build-angular": "~0.10.0",
    "@angular/cli": "~7.0.5",
    "@angular/compiler-cli": "~7.0.0",
    "@angular/language-service": "~7.0.0",
    "@types/intro.js": "^2.4.6",
    "@types/jasmine": "~2.8.8",
    "@types/jasminewd2": "~2.0.3",
    "@types/node": "~8.9.4",
    "codelyzer": "~4.5.0",
    "jasmine-core": "~2.99.1",
    "jasmine-spec-reporter": "~4.2.1",
    "karma": "~3.0.0",
    "karma-chrome-launcher": "~2.2.0",
    "karma-coverage-istanbul-reporter": "~2.0.1",
    "karma-jasmine": "~1.1.2",
    "karma-jasmine-html-reporter": "^0.2.2",
    "pe7-icon": "^1.0.4",
    "protractor": "~5.4.0",
    "ts-node": "~7.0.0",
    "tslint": "~5.11.0",
    "typescript": "~3.1.6"
  }
}

Я проделал много трюков

  • Удалены и установлены все node_modules с npm install, не работает
  • Я понизил машинную версию до версии 2.X, не работает
  • Переустановил только sweetalert с npm uninstall sweetalert2 && npm install sweetalert2, не работает
  • Запустил npm audit fix, много проблем с приложением, не работает

Я зашел в файл sweetalert в строке с ошибкой и нашел этот код

/**
     * Provide an array of SweetAlert2 parameters to show multiple popups, one popup after another.
     *
     * @param steps The steps' configuration.
     */
    function queue<T>(steps: readonly (SweetAlertOptions | string)[]): Promise<T>;

Во всех случаях одна и та же ошибка ... Что не так?


person Alberto Siurob    schedule 01.06.2020    source источник
comment
Вы пробовали обновить Angular?   -  person Michael D    schedule 01.06.2020
comment
Приложение построено на Angular 7, и клиент хочет по-прежнему   -  person Alberto Siurob    schedule 01.06.2020
comment
Тогда как насчет перехода на более раннюю версию sweetalert2?   -  person Michael D    schedule 01.06.2020
comment
Какую версию посоветуете?   -  person Alberto Siurob    schedule 01.06.2020
comment
v8.0.0 станет началом.   -  person Michael D    schedule 01.06.2020
comment
Вероятно, это связано с версией TS   -  person David    schedule 01.06.2020


Ответы (5)


Здравствуйте, я тоже начал сталкиваться с той же проблемой. А пока нашел исправление, пока не придет лучшее решение. Я просто понизил его. Проверьте, работает ли оно для вас.

npm установить [email protected]

person Antonio    schedule 07.06.2020
comment
переход на @ v9.11.0 сработал для меня - person Owais Alam; 22.01.2021
comment
рад, что это сработало .. - person Antonio; 23.01.2021

Я тоже боролся с этим.

С этими версиями пакета у меня работает.

"dependencies": {
  // ... 
  "@angular/common": "^7.2.16",
  "@angular/core": "^7.2.16",
  // ...
  "sweetalert2": "8.19.0",
  "@sweetalert2/ngx-sweetalert2": "^6.0.0",
},
"devDependencies": {
   "typescript": "3.2.4"
}

Или попробуйте эти версии:

"sweetalert2": "^8.0.0",
"@sweetalert2/ngx-sweetalert2": "^5.0.0"
person jonatan-gosztola    schedule 18.08.2020
comment
спасибо, он работает в angular 7 - person Sathia; 10.12.2020

Проблема, скорее всего, связана с несоответствием версии машинописного текста, необходимой sweetalert2, и версии вашего проекта.

В вашем package.json у вас есть следующее:

"sweetalert2": "^9.14.0" // Wants any version like 9.X where X must be >= 14
"typescript": "~3.1.6" // Wants any version like 3.1.Y where Y must be >= 6

Проверьте свой package-lock.json, чтобы узнать, какая версия sweetalert2 заблокирована вашим проектом (если у вас нет блокировки, это будет 9.17.2). Затем вы можете перейти к https://github.com/sweetalert2/sweetalert2/blob/v[THE VERSION]/package.json, чтобы проверить версию, необходимую для машинописного текста.

Если вы видите 9.14.0, они ожидают также машинную версию ^ 3.5.

person Guilhermevrs    schedule 15.09.2020

Хорошо, вам просто нужно удалить "только для чтения", и приложение будет работать

person Jordy Arnaud Garcia    schedule 03.06.2020
comment
Вы не можете предлагать редактировать внешний пакет локально. Это не решит проблему для людей, клонирующих проект. - person Guilhermevrs; 15.09.2020

попробуйте импортировать с помощью CommonJS в компонент, например:

const Swal = require('sweetalert2');

работал у меня;)

person ja73    schedule 13.08.2020