Как указать переменную для приложения AngularJS в качестве параметра командной строки при запуске сервера разработки Grunt (grunt-contrib-connect)
В моей производственной среде приложение Angular обслуживается в том же домене, что и API, поэтому базовый URL-адрес имеет вид, например, "/api".
Проблема заключается в том, что при разработке я использую grunt serve (grunt-contrib-connect) в качестве сервера разработки, и при запуске я хотел бы указать базовый URL-адрес для конечной точки API, например, grunt serve --endpoint="http:// локальный / апи"
Я знаю, что могу получить это значение с помощью grunt.option, однако, я не знаю, как передать это в свое приложение Angular.
Примечание: это не ваш типичный раздел конфигурации производства / разработки. Я хочу, чтобы конечная точка была указана при каждом запуске сервера разработки.
Какие-либо решения? Чем проще, тем лучше!
1 ответ
Это то, что вы хотите: https://github.com/jsoverson/grunt-env
В вашем Gruntfile.js вы укажете и переменную ENV:
grunt.initConfig({
env: {
development: {
ENV: 'development'
},
production: {
ENV: 'production'
}
},
// ...
И где-нибудь в вашем клиентском коде, как в моем файле settings.js, вы сделаете что-то вроде этого:
// @if ENV='development'
'api_base_url': 'http://localhost:' + (apiPort || 4000),
'base_url': 'http://localhost:7777',
'env': 'development'
// @endif