在nativescript中传递环境因变量&;角2
我正在使用NativeScript(2.3.0)和Angular2(2.0.0)构建一个移动应用程序 我正在努力使环境变量不在源代码中,因为它们是根据环境加载的(dev/test/prod) 理想情况下,我希望有专门的文件来保存它们(.env.dev) .env.test.env.prod)但我对任何有效的解决方案都持开放态度在nativescript中传递环境因变量&;角2,nativescript,angular2-nativescript,Nativescript,Angular2 Nativescript,我正在使用NativeScript(2.3.0)和Angular2(2.0.0)构建一个移动应用程序 我正在努力使环境变量不在源代码中,因为它们是根据环境加载的(dev/test/prod) 理想情况下,我希望有专门的文件来保存它们(.env.dev) .env.test.env.prod)但我对任何有效的解决方案都持开放态度 我找不到任何帮助,无论是原生脚本文档还是谷歌搜索 经过一些研究,我得到了一个解决方案,并将其发布以供将来参考: 受此启发: 这一切都是关于在全局命名空间中发布变量,并使用
我找不到任何帮助,无论是原生脚本文档还是谷歌搜索 经过一些研究,我得到了一个解决方案,并将其发布以供将来参考: 受此启发: 这一切都是关于在全局命名空间中发布变量,并使用Webpack通过
新建Webpack.DefinePlugin
()覆盖它们
分步指南:
- 将网页包安装为NS模块:
(更多信息)tns安装网页包
- 将Webpack安装为node_模块:
(我知道这似乎是多余的,但这是我发现的唯一可以从Webpack.config.js访问Webpack对象的方法)npm安装--保存开发人员Webpack
- 在webpack.config.js中按以下方式修改:(省略了其他不相关的配置)
/app
文件夹中创建以下文件,旨在用全局变量填充全局名称空间(如上所述,它们将被Webpack覆盖)
global environment.ts
// Extra variables that live on Global that will be replaced by webpack DefinePlugin
declare var ENV: string;
declare var HMR: boolean;
declare var API_URL: string;
interface GlobalEnvironment {
ENV;
HMR;
API_URL;
}
完成了
也许你有更好的方法/改进方法。我很高兴听到他们
// Extra variables that live on Global that will be replaced by webpack DefinePlugin
declare var ENV: string;
declare var HMR: boolean;
declare var API_URL: string;
interface GlobalEnvironment {
ENV;
HMR;
API_URL;
}