【问题标题】:What is the reason to use process.env.NODE_ENV and process.env.ENV variables in angular2?在 angular2 中使用 process.env.NODE_ENV 和 process.env.ENV 变量的原因是什么?
【发布时间】:2016-06-19 22:58:04
【问题描述】:

我开始学习 angular2,我看到在示例中它们覆盖了配置文件中的 process.env.NODE_ENV 和 process.env.ENV 变量。这段代码来自this example的webpack.prod.js

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

覆盖 process.env.NODE_ENV 和 process.env.ENV 变量的原因是什么。 nodejs 或 angular 2 中是否有使用此变量的内容?

【问题讨论】:

    标签: node.js angular


    【解决方案1】:

    最简单的用例之一是在引导应用程序时定义开发模式或生产模式:

    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 
    }
    

    所以一般来说,我们可以在许多不同的场景中使用它们,您希望将变量从服务器(即命令行)传递到您的应用程序。

    【讨论】:

      【解决方案2】:

      这不仅仅是关于 angular2 的事情。当您想将环境变量从服务器公开到客户端时,通常最佳做法是使用稍微不同的名称来映射它们,并且只公开那些与客户端相关的项目。

      因此,人们不能简单地查看暴露环境变量的 API 端点并锻炼所有服务器环境变量。

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

      从那时起它实际上是 process.env.NG_ENV 或 process.env.ENV

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-10-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-04-17
        • 2011-10-13
        • 2018-03-17
        • 2017-04-10
        相关资源
        最近更新 更多