在 Nativescript 中使用 Angular 5 的环境变量
Environment variables using in Nativescript with Angular 5
我想在 Angular 应用程序的本机脚本中使用环境数据。我遇到以下错误“ReferenceError: process is not defined”.
运行 申请
npm run android --env.apiUrl="https://******.com/" --env.apiUserName="****" --env.apiPassword="*******"
Angular 服务
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.log('API URL-->' + this.apiUrl);
console.log('API USERNAME-->' + this.userName);
console.log('API PASSWORD-->' + this.password);
console.log(process.env);
if (isAndroid) {
this.platform = 'android';
} else if (isIOS) {
this.platform = 'ios';
}
}
我无法将我在 运行 应用程序作为环境时传递的 apiuRL 、 apiUserName 和 apiPassword 。我已经提到了下面的 Whosebug 问题。但是,倒霉。任何人都可以帮助我如何从环境中获取这些数据。
我不是 nativescript 开发人员,但我知道 Angular 方法。
您可以使用 environment.ts
和 environment.prod.ts
,其中放置所有与环境相关的变量,如 apiUserName 和 apiUrl .. 等
在您的服务中,您应该导入环境并以打字稿正常方式使用它。
有关详细信息,请查看以下内容 link:https://alligator.io/angular/environment-variables/
希望这对您有所启发并解决您的问题。
更新
如果您使用的是 webpack,则可以在您的 webpack 配置中访问 process.env
。
modules.exports = (env) => {
let apiUrl = env.apiUrl;
return {
entry: '',
......
}
}
现在,一旦您在 webpack 配置中访问了您的 env
,您就有很多选择将它们传递给 angular 应用程序。
使用webpack.DefinePlugin
(推荐)。 https://github.com/gdi2290/angular-starter/issues/386
使用 fs
写入 json 文件,然后在 angular 应用程序中使用 http.
读取文件
我想在 Angular 应用程序的本机脚本中使用环境数据。我遇到以下错误“ReferenceError: process is not defined”.
运行 申请
npm run android --env.apiUrl="https://******.com/" --env.apiUserName="****" --env.apiPassword="*******"
Angular 服务
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.log('API URL-->' + this.apiUrl);
console.log('API USERNAME-->' + this.userName);
console.log('API PASSWORD-->' + this.password);
console.log(process.env);
if (isAndroid) {
this.platform = 'android';
} else if (isIOS) {
this.platform = 'ios';
}
}
我无法将我在 运行 应用程序作为环境时传递的 apiuRL 、 apiUserName 和 apiPassword 。我已经提到了下面的 Whosebug 问题。但是,倒霉。任何人都可以帮助我如何从环境中获取这些数据。
我不是 nativescript 开发人员,但我知道 Angular 方法。
您可以使用 environment.ts
和 environment.prod.ts
,其中放置所有与环境相关的变量,如 apiUserName 和 apiUrl .. 等
在您的服务中,您应该导入环境并以打字稿正常方式使用它。
有关详细信息,请查看以下内容 link:https://alligator.io/angular/environment-variables/
希望这对您有所启发并解决您的问题。
更新
如果您使用的是 webpack,则可以在您的 webpack 配置中访问 process.env
。
modules.exports = (env) => {
let apiUrl = env.apiUrl;
return {
entry: '',
......
}
}
现在,一旦您在 webpack 配置中访问了您的 env
,您就有很多选择将它们传递给 angular 应用程序。
使用
webpack.DefinePlugin
(推荐)。 https://github.com/gdi2290/angular-starter/issues/386使用
fs
写入 json 文件,然后在 angular 应用程序中使用 http. 读取文件