Мне нужен мой файл firebase-messaging-sw.ts, скомпилированный в firebase-messaging-sw.js, чтобы он был доступен из корня.
Я уже создал firebase-messaging-sw.ts в папке src. Но это не работает. Я также добавил файл .js в angular.json.
Итак, я хочу сделать файл ts и скомпилировать его в js. Но я не знаю, как это сделать в Angular.
угловой.json
"assets": [
"src/favicon.ico",
"src/assets",
"src/firebase-messaging-sw.js"
Я отредактирую свой пост, я хочу написать файл TS и использовать скомпилированный файл js
Если вы напишете файл TS и правильно подключите его, полученный файл JS будет автоматически импортирован в ваш пакет. Вам не нужно никаких дополнительных шагов.
Мне не нужно, чтобы он был в комплекте, мне нужно, чтобы он был отдельным js, доступным, как этот test.org/firebase-messaging-sw.js
Если это отдельно, то это не может быть TS. Если он отдельный, он не будет проходить процесс сборки, а это означает, что это должен быть JS.
Что значит, это не может быть ТС? Я хочу написать /a.ts compile в /a.js и сделать его доступным при обслуживании. Мне просто нужно знать, как настроить tsconfig или angular.json
Затем вы импортируете свой a.ts
в свой main.ts
, чтобы он был связан. Затем у вас есть доступ ко всем его переменным в ваших компонентах, либо путем их импорта, либо путем ссылки на созданную им переменную.
Нет, ты не понимаешь. Чтобы обмен сообщениями firebase работал. Браузеру требуется отдельный файл js в корне с именем firebase-messaging-sw.js. Это должно быть конкретное имя файла и в корне.
Затем создайте файл JS, а не файл TS, и добавьте его в массив angular.json
вашего scripts
, в правильный. Я понял вашу проблему, я отвечаю на нее уже 2 часа. Просто ты, похоже, не слушаешь и не понимаешь, что я говорю.
Мне нужно использовать переменные среды из angular, поэтому мне нужно, чтобы t было ts. Так что я не думаю, что вы понимаете проблему.
Вы можете открыть переменные среды, чтобы использовать их. И, конечно, если вы не заявите о своей цели, я не могу понять вопроса. Ты не рассказываешь всего, откуда мы должны знать? Догадка ? Как экстрасенсы? Но опять же, я не понимаю, почему вы должны создавать файл js «в корне», как этот, библиотеки должны абстрагировать эти концепции, чтобы вам не приходилось делать именно то, что вы пытаетесь сделать. Мне кажется проблема XY.
Ты все еще не до конца понимаешь. Этот файл ТРЕБУЕТСЯ находиться в корне для работы firebase. Это стандарт для всех основных браузеров, таких как Chrome Safari и т. д. Я ценю ваше время, но это то, что есть. Я не устанавливаю правила.
Не могли бы вы дать мне ссылку на вашу библиотеку?
Вот руководство firebase.google.com/docs/cloud-messaging/js/получить
Спасибо, буду разбираться!
Спасибо и тебе мужик!
Вы всегда можете использовать
tsc myfile.ts
чтобы скомпилировать отдельный файл .ts
в отдельный файл .js
, который не имеет ничего общего с вашим проектом Angular.
Возможно, вы даже можете запустить обе команды одновременно в терминале:
Терминал
tsc myfile.ts && ng build myproject
Или добавьте его в package.json
"scripts":{
"build" : "tsc myfile.ts && ng build myproject"
}
npm run build
Это работает, но можно ли настроить это в файле tsconfig?
tsconfig предоставляет больше возможностей для компиляции в js, но вам все равно нужен tsc. Но также возможно добавить этот процесс в файл веб-пакета Angular как совершенно отдельный шаг.
К сожалению, это не очень хорошее решение, когда создаваемый ts-файл зависит от переменных environments.ts. Правильный dev/prod environments.ts создается после запуска tsc.
Вы хотите написать файл TS или использовать существующий файл JS? Вы не очень ясно...