Я хочу использовать данные среды в моем собственном скрипте с приложением 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. Но не повезло. Кто-нибудь, помогите мне, как получить эти данные из среды.





Я не разработчик 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.
Используйте webpack.DefinePlugin (рекомендуется). https://github.com/gdi2290/angular-starter/issues/386
Используйте fs для записи в файл json, а затем чтения из него в приложении angular с помощью http.
У вас нет доступа к process.env в приложении Angular. он доступен вам только в приложении Node.js.
Хорошо, я только что увидел ваш обновленный вопрос ... Вы используете webpack ??
да. Я использую webpack
Привет, Нур! Это мой новый веб-пакет 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: ""), // и т. д., это всего лишь примеры}}),
Это нормально, но я хочу использовать process.env. Anyidea об этом