javascript - 运行时Angular 2 Webpack环境配置

标签 javascript angular build webpack environment-variables

我正在使用 Webpack 构建我的 Angular 项目。

我有一个 env.js 文件,如下所示:

module.exports.ENV = {
  API_URL: "http://localhost:5001/",
  ...
};

在我的 webpack.common.js 中,我有:

const API_URL = require('./env').ENV.API_URL;
const METADATA = {
  API_URL: API_URL,
  title: "Angular Project",
  ...
};

这很好,因为我能够在单个 env.js 文件中配置我的环境变量。但是,此配置在构建过程中。这很糟糕,因为我不能只构建一次并在每个环境中运行(假设环境有一个 env.js),相反,对于每个环境,我必须构建一个新的项目实例 - 这我认为这不是最佳做法。

所以我的问题是:有什么方法可以在运行时使用 Angular 2 和 Webpack 配置我的环境变量?

最佳答案

Webpack 推荐使用 process.env.NODE_ENV:

https://webpack.js.org/guides/environment-variables/

我在很多地方用过这个:

const ENV = process.env.ENV = process.env.NODE_ENV = 'development';

还有一个库包cross-env,可以在命令行调用它来设置环境变量,同时执行一个进程。

你也可以从你的 webpack 插件中定义你的环境变量(通过 DefinePlugin):

new webpack.DefinePlugin({
    'process.env.NODE_ENV': JSON.stringify(process.env.NODE_ENV || 'development')
}),

关于javascript - 运行时Angular 2 Webpack环境配置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44124637/

相关文章:

android - 如何在 Android 下使用 provider 构建自定义 sqlite?

javascript - YouTube 视频自动播放无法在 iPhone 设备的 Chrome 上运行

javascript - 如何在 JavaScript 中替换 ASCII 码 (alt+207)?

javascript - 首先按 bool 列然后按字符串列对数组进行排序

Angular 8 : Not Showing the content of ng-tmplate in nested structure

build - rpm 构建错误

iphone - 我似乎无法在我的xcode版本上建立存档

javascript - 将 select 标签的选项的 json 数据存储在变量中

javascript - Node 应用: Http to Https redirection does not work for localhost

angular - 在 ng build --prod am gettng 错误上,属性 'email' 在类型 'Object 上不存在