从angular-cli创建的environment.ts文件中访问process.env

时间:2017-04-19 13:36:57

标签: angular angular-cli

我有一个angular-cli应用程序(角度版本4.0.0)。我希望能够在从cli。

创建的environment.ts文件中访问我的环境变量

示例:

export SOME_VARIABLE=exampleValue

当我构建我的角度应用程序时,我想要" exampleValue"要在SOME_VARIABLE字段中填充。

// environment.ts

export const environment = {
    production: false,
    SOME_VARIABLE: process.env.SOME_VARIABLE
};

不幸的是,process.env在此文件中不可用。我怎样才能访问它?

1 个答案:

答案 0 :(得分:2)

解决此问题的一种方法是创建一个节点脚本,用于替换占位符。

可以使用replace-in-file来自npm。

解决方案可能如下所示:

  1.   

    npm install replace-in-file --save-dev

  2. 创建占位符

    export const environment = {
      production: true,
      version: '{BUILD_VERSION}'
    }
    
  3. 创建节点脚本以替换占位符(根文件夹中的replace.build.js)

    var replace = require('replace-in-file');
    var buildVersion = process.env.BUILD_NUMBER;
    const options = {
      files: 'environments/environment.ts',
      from: /{BUILD_VERSION}/g,
      to: buildVersion,
      allowEmptyPaths: false,
    };
    
    try {
      let changedFiles = replace.sync(options);
      console.log('Build version set: ' + buildVersion);
    }
    catch (error) {
      console.error('Error occurred:', error);
    }
    
  4. 在构建过程f.e中执行此节点脚本。在gulp

    gulp.task('updateVersion', function (done) {
      exec('node ./replace.build.js', function (err, stdout, stderr) {
        console.log(stdout);
        console.log(stderr);
        done();
      });
    });
    
  5. 现在,您可以在应用中使用environment.version