NativeScript, совместное использование кода и различные среды - PullRequest
0 голосов
/ 18 октября 2018

Примечание : это не обман , или , другой вопрос.Читайте дальше: этот вопрос относится к шаблону совместного использования кода.


Я провожу довольно простые эксперименты с 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, единственные доступные опции - это переключение между режимом отладки / выпуска), но это, вероятно, лучше оставить для другого вопроса.

Ответы [ 2 ]

0 голосов
/ 13 ноября 2018

Я еще не рассматривал возможность совместного использования файлов среды между сетью и мобильными устройствами - мне нравится предложение Маноджа относительно изменения схем, но, думаю, мне придется пересечь этот мост, когда я доберусь туда.У меня может быть ответ на ваш второй вопрос о Sidekick.Последняя версия поддерживает опцию сборки "Webpack", которая, похоже, передает параметр --bundle в tns.Предостережение заключается в том, что эта опция кажется более чувствительной к ошибкам машинописи, даже относительно доброкачественным, поэтому вы должны быть осторожны и обязательно исправить их все до сборки.В моем случае мне пришлось заблокировать версию @ types / jasmine в package.json на «2.8.6», чтобы избежать некоторой несовместимости между этой версией и версией машинописи, которую использует облачное решение Sidekick.Еще один совет - проверять «Чистую сборку» после изменения зависимостей npm.Удачи!

0 голосов
/ 18 октября 2018

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

Но, конечно, вы можете написать свои собственные схемы, если вам нужна немедленная поддержка файлов среды.

...