Хостинг Angular + Firebase: как использовать статический js-файл в корне сайта? - PullRequest
0 голосов
/ 03 ноября 2019

Я делаю PWA с Angular и Firebase. Использование StackBlitz для разработки.

Я хочу, чтобы стандартная рекомендация Chrome работала, когда пользователь открывает мое приложение в браузере, но я не могу правильно назвать JS "работник службы" из своего кода ...

Я создал sw.js в папке / src моего проекта. Я добавил его в разделы 'scripts' и 'assets' в .angular-cli.json и .angular.json. А в StackBlitz все работает отлично!

Но когда я развертываю проект в Firebase (используя встроенную функциональность Stackblitz), ничего не работает ... Похоже, сервер не видит файл в ожидаемом каталоге (/ src / sw).js) ... Кто-нибудь сталкивался с такой же проблемой?

1 Ответ

0 голосов
/ 03 ноября 2019

Не думаю, что есть способ это исправить, я почти уверен, что проблема в сервере stackblitz. но, к счастью, инженеры Firebase сделали простой скрипт узла для замены одного файла. Это сработало для меня. Поскольку ссылка описывает, просто установите git и node, а затем в командной строке выполните следующие команды: git

  1. git clone https://gist.github.com/e00c34dd82b35c56e91adbc3a9b1c412.git firebase-hosting-deploy-file
  2. cd firebase-hosting-deploy-file
  3. npm install
  4. , затем добавьте свой файл javascript в то же дерево файлов, что и в stackblitz, для меня это было в src / assets / scripts / alert.js, поэтому я создал папку активов с папкой сценариев, внутри которой находится мой файл js. сделайте все это в каталоге firebase-hosting-deploy-file.
  5. запустите это в приглашении: "node deployFile.js [commit]", для меня с моей файловой структурой это было "node deployFile.js otherproject-a5722 /assets/scripts/alert.js commit"

дополнительная информация:

Я попытался воспроизвести вашу проблему, дайте мне знать, если ссылка работает. https://stackblitz.com/edit/angular-epvm8w. В основном только в index.html. у файла js просто есть alert («alert»);в этом. это работает, как вы сказали, но при развертывании я думаю, что сервер stackblitz заменяет контент HTML. Я думаю, что это потому, что в панели разработчиков Chrome под исходными файлами js-файл имел тот же html, что и шаблон индекса из github stackblitz. Заставляет меня думать, что это просто ошибка. То же самое случилось с файлом CSS.

...