Size: a a a

2020 March 21

R

Roman in Angular Moscow
Igor Lezhnev
Всем привет, может кто знает и подскажет

хочу в зависимости от ng build —configuration...
использовать разные browserslist
обернуть в команды npm, и перед вызовом ng cli подменять broserlist на один из списка заготовленных

например, я сделал команды npm которые перед запуском ng-cli меняют environment на основе переменных окружения. Если node_env=production, изменения идут в environment.prod.ts если нет, то environment.development.ts.

тут поле простора огромное
источник

IL

Igor Lezhnev in Angular Moscow
Roman
обернуть в команды npm, и перед вызовом ng cli подменять broserlist на один из списка заготовленных

например, я сделал команды npm которые перед запуском ng-cli меняют environment на основе переменных окружения. Если node_env=production, изменения идут в environment.prod.ts если нет, то environment.development.ts.

тут поле простора огромное
Ну для подмены енв есть в angular.json конфигурации
источник

R

Roman in Angular Moscow
Igor Lezhnev
Ну для подмены енв есть в angular.json конфигурации
если мне нужно через переменные окружения пробрасывать тут сложней..
источник

IL

Igor Lezhnev in Angular Moscow
Вопрос работает ли это с browserslist
источник

R

Roman in Angular Moscow
ну у тебя может быть команда в package.json вида
"build:dev": "copy browserlist.development browserllist && ng build -c development"
источник

IL

Igor Lezhnev in Angular Moscow
Roman
если мне нужно через переменные окружения пробрасывать тут сложней..
Не очень понимаю, с переменными окружения проблем не было (если  ты про билды в докере к примеру, но это другой вопрос)

Но идею с подменой понимаю, просто в самом Browserslist есть возможность работы с окружениями
источник

R

Roman in Angular Moscow
Igor Lezhnev
Не очень понимаю, с переменными окружения проблем не было (если  ты про билды в докере к примеру, но это другой вопрос)

Но идею с подменой понимаю, просто в самом Browserslist есть возможность работы с окружениями
а как мне сделать чтобы если я набираю команду вида API_URL_PREFIX='some_custum_url' ng build - чтобы я имел доступ к переменной из кода?
источник

IL

Igor Lezhnev in Angular Moscow
L_PREFIX это будущий урл для запросов что ли?
источник

R

Roman in Angular Moscow
Igor Lezhnev
L_PREFIX это будущий урл для запросов что ли?
как пример может быть https://prod.com/api/ либо https://staging.com/api/
источник

IL

Igor Lezhnev in Angular Moscow
Roman
как пример может быть https://prod.com/api/ либо https://staging.com/api/
1) ng build —configuration=prod, ng build —configuration=staging

angular.json
добавляем projects.name.architect.build.configurations.production
projects.name.architect.build.configurations.staging
источник

R

Roman in Angular Moscow
Igor Lezhnev
1) ng build —configuration=prod, ng build —configuration=staging

angular.json
добавляем projects.name.architect.build.configurations.production
projects.name.architect.build.configurations.staging
это все есть. Не подходит
источник

IL

Igor Lezhnev in Angular Moscow
2) Если хотим динамически
делаем apiConfigurationFactory
где делаем запрос к бэку получаем куда должны ходить запросы
источник

IL

Igor Lezhnev in Angular Moscow
тогда динамически с бека можно менять
источник

IL

Igor Lezhnev in Angular Moscow
3) Делаем на nginx proxy
источник

R

Roman in Angular Moscow
Igor Lezhnev
2) Если хотим динамически
делаем apiConfigurationFactory
где делаем запрос к бэку получаем куда должны ходить запросы
зачем нам лишний запрос? Запрос надо зашить при сборке. Есть пайплайны, есть докеры, апи url указывается докером при сборке.
источник

R

Roman in Angular Moscow
самое простое в envinromnent.который-нужен.ts прописывать изменения на лету
источник

R

Roman in Angular Moscow
перед стартом ng build
источник

IL

Igor Lezhnev in Angular Moscow
Roman
перед стартом ng build
2-й способ вообще не требует пересборки)
источник

R

Roman in Angular Moscow
ты меня не понял
источник

IL

Igor Lezhnev in Angular Moscow
+ cross-env если хочется
process.env.NAMEVARIABLE
источник