Превышен максимальный размер стека вызовов при добавлении PWA в Angular

Я пытаюсь установить сервисный работник в моем приложении, но после выполнения следующей команды отображается следующая ошибка.

ng add @ angular / pwa --project ServiceWorkerdemo

ng add @angular/pwa --project ServiceWorkerdemo
Installing packages for tooling via npm.
npm WARN rollback Rolling back node-pre-gyp@0.10.0 failed (this is probably harmless): EPERM: operation not permitted, lstat 'path\ServiceWorkerdemo\node_modules\fsevents\node_modules'
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@1.2.4 (node_modules\fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@1.2.4: wanted {"os":"darwin","arch":"any"} (current: {"os":"win32","arch":"x64"})

+ @angular/pwa@0.11.3
updated 1 package and audited 47713 packages in 25.858s
found 0 vulnerabilities

Installed packages for tooling via npm.
**Maximum call stack size exceeded**

это показывает Максимальный размер стека вызовов превысил сообщение об ошибке.

Хотя я очищаю кеш, он снова показывает ту же ошибку.

    >npm cache clean --force
npm WARN using --force I sure hope you know what you are doing.

**path\ServiceWorkerdemo>ng add @angular/pwa --project ServiceWorkerdemo
Installing packages for tooling via npm.
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@1.2.4 (node_modules\fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@1.2.4: wanted {"os":"darwin","arch":"any"} (current: {"os":"win32","arch":"x64"})

+ @angular/pwa@0.11.3
updated 1 package and audited 47713 packages in 26.054s
found 0 vulnerabilities

Installed packages for tooling via npm.
Maximum call stack size exceeded

Вместо того, чтобы отмечать как дубликат, любезно предложите мне ответ, я уже попробовал очистить кеш, но все еще показываю сообщение об ошибке. Вы можете увидеть в изображении также.

После удаления узла Package.

Заранее спасибо.

2 ответа

Решение

Если вы не используете Angular 7 или выше, вам нужно выполнить что-то вроде

ng add @angular/pwa@v6-lts --project ...

чтобы убедиться, что установлена ​​правильная версия модуля, которая работает с вашей версией Angular.

(Также см. https://github.com/angular/angular-cli/issues/12914)

У меня была точно такая же ошибка, как и у вас (Angular 6.1), и я смог успешно решить ее таким образом.

У меня та же проблема. Я смог заставить его работать, указав предыдущий стабильный выпуск:

ng add @ angular / pwa @ 0.8.7 --project my-project-name

Вы можете проверить решение этой публикации SO, где говорится, что эта ошибка вызвана одной функцией, вызывающей другую функцию и т. Д., Пока она не достигнет предела стека вызовов. Это называется рекурсивным циклом функции.

Чтобы исправить это, убедитесь, что у вашей рекурсивной функции есть базовый случай, который можно встретить:

(function a(x) {
    // The following condition 
    // is the base case.
    if ( ! x) {
        return;
    }
    a(--x);
})(10); 

Вы можете проверить вкладку ресурсов Chrome Dev Tool.

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