@Ghoulll

Angular изменение переменных для production?

Как изменить некие переменные для production'а? Есть адреса по которым я кидаю запросы, для локальной разработки, а для продакшена необходимо по другим адресам кидать запросы, как это сделать?
  • Вопрос задан
  • 144 просмотра
Решения вопроса 2
khegay
@khegay
Founder, Garuna
В помощь вам src\environments

Там есть environment.ts - он используется по-умолчанию
При сборке проекта:
ng build --prod
флажок --prod подставляется в маску *.environment.ts

В компонент импорится просто:
import { environment } from 'src/environments/environment';

export class AppComponent implements OnInit {
     url = environment.apiUrl;
}


Почитать более развернуто можно тут
Ответ написан
Комментировать
firedragon
@firedragon
Не джун-мидл-сеньор, а трус-балбес-бывалый.
base.service.ts
import { Observable } from 'rxjs/Rx';

export abstract class BaseService {

    protected readonly api = process.env.VUE_APP_API_ENDPOINT;

    protected handleError(error: any) {
    const applicationError = error.headers['Application-Error'];

    if (applicationError) {
        return Observable.throw(applicationError);
    }

    let modelStateErrors: any = '';

    if (error.data) {
        for (const key in error.data) {
            if (error.data[key]) {
              modelStateErrors += error.data[key] + '\n';
            }
          }
    }

    modelStateErrors = modelStateErrors = '' ? null : modelStateErrors;
    return Observable.throw(modelStateErrors || 'Server error');
  }
}


.env
VUE_APP_API_ENDPOINT = 'http://localhost:5000/api'
.env.production
VUE_APP_API_ENDPOINT ='/api'
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы