Примечание : это не обман , или , другой вопрос.Читайте дальше: этот вопрос относится к шаблону совместного использования кода.
Я провожу довольно простые эксперименты с NativeScript, Angular и шаблонами совместного использования кода (см .: @ nativescript / schematics ).
Сейчас я занимаюсь исследованием / изучением того, как различные «конфигурации сборки» поддерживаются платформой.Чтобы было ясно, я ищу простой - и, надеюсь, официальный - способ, чтобы приложение использовало другую версию определенного файла (назовем его configuration.ts) на основе текущей платформы (web / ios / android) и среды(разработка / производство / постановка?).
Выполнение первой части очевидно тривиально - в конце концов, это главная цель схем совместного использования кода.Итак, разные версии одного и того же файла идентифицируются разными расширениями. На этой странице все объясняется довольно просто .
Чего я не так легко понимаю, так это если фреймворк / шаблон поддерживает какое-либо подобное основанное на соглашении правило, которое можно использовать для переключения между отладкой / выпуском(или даже лучшая разработка / подготовка / производство) версий файла.Например, файл config.ts
, который содержит различные параметры в зависимости от среды.
Я провел некоторое исследование в этой теме, но не смог найти окончательный ответ:
- В старой и уже вышедшей из употребления документации для платформы appbuilder упоминается соглашение об именах файлов ( .debug. и .release. ).Я не думаю, что эта работа больше.
- другие источники упоминают о передаче параметров во время вызова
tns build
/ tns run
и последующей их выборке через переменную env webpack ... См. Здесь .Это может работать, но кажется странно запутанным - Третий вариант, который упоминается, - это использовать хуки для настройки сборки ( или использовать плагин, который должен делать то же самое )
- наконец, по какой-то странной причине, @ nativescript / schematics, кажется, генерирует проект по умолчанию, который содержит два файла с именами
environment.ts
и environment.prod.ts
.Я подозреваю, что они работают только для веб-версии проекта (читай: ng serve
) - я не смог заставить мобильный компилятор распознавать файлы, заканчивающиеся на debug.ts, prod.ts или release.ts
Хотя вполне возможно, что то, что я пытаюсь сделать, не просто поддерживается (пока?), Общая путаница и несогласные мнения по этому вопросу заставляют меня думать, что я что-то упускаю ... где-то.
В случае, если это IS каким-либо образом поддерживается, мне также интересно, как оно может интегрироваться с приложением NativeScript Sidekick, которое часто предлагается в качестве инструмента для облегчения процесса сборки / запуска приложений NativeScript (естьнет способа указать дополнительные параметры для команд tns, которые автоматизирует Sidekick, единственные доступные опции - это переключение между режимом отладки / выпуска), но это, вероятно, лучше оставить для другого вопроса.