Как указать переменную для приложения 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
Другие вопросы по тегам