在angular2中使用process.env.NODE_ENV和process.env.ENVvariables是什么原因?

我开始学习angular2,并在例子中看到它们覆盖configuration文件中的process.env.NODE_ENV和process.env.ENVvariables。 这个代码来自这个例子的 webpack.prod.js

// webpack.prod.js const ENV = process.env.NODE_ENV = process.env.ENV = 'production'; 

什么是重写process.env.NODE_ENV和process.env.ENVvariables的原因。 有没有在nodejs或angular2使用这个variables?

这不仅仅是关于angular2的东西。 当你想要从服务器到客户端公开ENV环境时,通常最好的做法是将它们映射到稍微不同的名称,并只公开那些涉及客户端的项目。

这是一个不能简单地看你的API端点,暴露环境和锻炼你所有的服务器环境variables。

在这个特定的例子中,从领域的angular度来看也是有意义的。 因为尽pipeprocess.env.ENV可能与NODE_ENV具有相同的值,但它并不代表node.js的环境,而是代表运行angular的ENV。

从那以后有效的是process.env.NG_ENV或process.env.ENV

最简单的用例之一是定义启动应用程序的开发模式或产品模式:

 if ( 'development' === ENV && HMR === true ) { // activate hot module reload let ngHmr = require( 'angular2-hmr' ); ngHmr.hotModuleReplacement( main , module ); } else { enableProdMode(); // which run Angular2 app in production mode } 

所以一般来说,我们可以在很多不同的情况下使用它们,你想从服务器(即命令行)传递一个variables到你的应用程序。