Javascript 运行时Angular 2网页包环境配置

Javascript 运行时Angular 2网页包环境配置,javascript,angular,build,webpack,environment-variables,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 Projec

我正在使用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\u env:

我在很多地方都使用过:

const ENV = process.env.ENV = process.env.NODE_ENV = 'development';
还有另一个库包
cross-env
,您可以在命令行上调用它来设置环境变量,同时执行一个进程

您还可以从webpack插件(通过DefinePlugin)定义环境变量:


网页包建议使用process.env.NODE\u env:

我在很多地方都使用过:

const ENV = process.env.ENV = process.env.NODE_ENV = 'development';
还有另一个库包
cross-env
,您可以在命令行上调用它来设置环境变量,同时执行一个进程

您还可以从webpack插件(通过DefinePlugin)定义环境变量: