Переменные среды, использующиеся в Nativescript с Angular 5

Я хочу использовать данные среды в моем собственном скрипте с приложением Angular. Я сталкиваюсь с ошибкой ниже как "ReferenceError: процесс не определен".

Запустить приложение

 npm run android --env.apiUrl = "https://******.com/" --env.apiUserName = "****" --env.apiPassword = "*******"

Угловой сервис

    import { } from 'node';
declare var process: any;

@Injectable()
export class CommonService {
  apiUrl: string;
  userName: string;
  password: string;
  platform: string;

  constructor ()  {


    this.apiUrl = (typeof process !== 'undefined' && process && process.env) ? process.env['apiUrl'] : '';
    this.userName = (typeof process !== 'undefined' && process && process.env) ? process.env['apiUserName'] : '';
    this.password = (typeof process !== 'undefined' && process && process.env) ? process.env['apiPassword'] : '';
    console.info('API URL-->' + this.apiUrl);
    console.info('API USERNAME-->' + this.userName);
    console.info('API PASSWORD-->' + this.password);
    console.info(process.env);

    if (isAndroid) {
        this.platform = 'android';
    } else if (isIOS) {
        this.platform = 'ios';
    }
  }

Я не могу использовать apiuRL, apiUserName и apiPassword, которые я передал при запуске приложения в качестве среды. Я сослался на приведенный ниже вопрос о StackOverflow. Но не повезло. Кто-нибудь, помогите мне, как получить эти данные из среды.

ссылка на stackoverflow

Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Angular и React для вашего проекта веб-разработки?
Angular и React для вашего проекта веб-разработки?
Когда дело доходит до веб-разработки, выбор правильного front-end фреймворка имеет решающее значение. Angular и React - два самых популярных...
Эпизод 23/17: Twitter Space о будущем Angular, Tiny Conf
Эпизод 23/17: Twitter Space о будущем Angular, Tiny Conf
Мы провели Twitter Space, обсудив несколько проблем, связанных с последними дополнениями в Angular. Также прошла Angular Tiny Conf с 25 докладами.
Угловой продивер
Угловой продивер
Оригинал этой статьи на турецком языке. ChatGPT используется только для перевода на английский язык.
Мое недавнее углубление в Angular
Мое недавнее углубление в Angular
Недавно я провел некоторое время, изучая фреймворк Angular, и я хотел поделиться своим опытом со всеми вами. Как человек, который любит глубоко...
Освоение Observables и Subjects в Rxjs:
Освоение Observables и Subjects в Rxjs:
Давайте начнем с основ и постепенно перейдем к более продвинутым концепциям в RxJS в Angular
0
0
924
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Я не разработчик nativescript, но знаю, как это сделать с помощью Angular.

Вы можете использовать environment.ts и environment.prod.ts, где вы помещаете все связанные со средой переменные, такие как apiUserName и apiUrl .. и т. д.

В вашем сервисе вы должны импортировать среду и использовать ее обычным способом в машинописном тексте.

Для получения дополнительной информации перейдите по следующей ссылке: https://alligator.io/angular/environment-variables/

Надеюсь, это вдохновит вас и решит вашу проблему.

Обновлять

Если вы используете webpack, вы можете получить доступ к process.env в конфигурации вашего webpack.

modules.exports = (env) => {
    let apiUrl = env.apiUrl;
    return {
        entry: '', 
        ......
    }
}

Теперь, когда у вас есть доступ к вашему env в конфигурации веб-пакета, у вас есть много вариантов для передачи их в приложение angular.

  1. Используйте webpack.DefinePlugin (рекомендуется). https://github.com/gdi2290/angular-starter/issues/386

  2. Используйте fs для записи в файл json, а затем чтения из него в приложении angular с помощью http.

Это нормально, но я хочу использовать process.env. Anyidea об этом

Muthukumar Marichamy 11.10.2018 13:39

У вас нет доступа к process.env в приложении Angular. он доступен вам только в приложении Node.js.

Nour 11.10.2018 13:42

Хорошо, я только что увидел ваш обновленный вопрос ... Вы используете webpack ??

Nour 11.10.2018 13:42

да. Я использую webpack

Muthukumar Marichamy 11.10.2018 13:44

Привет, Нур! Это мой новый веб-пакет webconfig.DefinePlugin ({"global.TNS_WEBPACK": "true", 'process.env': {'apiUrl': JSON.stringify (env && env.envtype? Env.envtype: "" ), 'apiUserName': JSON.stringify (env && env.gmapsKey? env.gmapsKey: ""), 'apiPassword': JSON.stringify (env && env.stripeKey? env.stripeKey: ""), // и т. д., это всего лишь примеры}}),

Muthukumar Marichamy 11.10.2018 14:19

Другие вопросы по теме