弹出项目上的角度环境变量

时间:2017-08-21 16:26:06

标签: angular webpack

我想要达到什么目标?
生成环境变量取决于我当前正在弹出项目(ng弹出)上编译的NODE_ENV。 使用Angular Cli定位环境: ng build --prod || ng build --dev

我尝试了什么?

  1. 在我的脚本中设置我的NODE_ENV:
  2. 的package.json

       ...
       "start": "NODE_ENV=development webpack-dev-server --port=4200",
       "start:prod": "NODE_ENV=production webpack-dev-server --port=4200",
       ...
    
    1. 根据建议here,我在webpack中更改了我的AotPlugin并将其替换为:

      const environmentFiles = {
      'development': 'environments/environment.dev.ts',
      'production': 'environments/environment.prod.ts',
      };
      
      
      ...
      new AotPlugin({
      ...
       "hostReplacementPaths":
         "environments/environment.ts": environmentFiles[process.env.NODE_ENV]
      

      1. 尝试运行: npm run-script build:prod 但AotPlugin并不希望替换( hostReplacementPaths )环境变量文件( environment.dev.ts || environment.prod.ts )。

      2. 有什么想法吗?

        类似的问题:

        Environment file replacement is broken after switching to webpack...

1 个答案:

答案 0 :(得分:1)

实际上我只是恢复了我的退出项目并重新使用CLI! 但是......我解决了它只是使用预建脚本将我的环境复制并粘贴到environment.ts中!

"prebuild:dev": "cp environment/environment.dev.ts environment/environment.ts"

您还可以设置NODE变量以将条件应用到代码中:
How to set Environment variables from within package.json [Node.js]

例如:

npm run prebuild:dev
// will build my dev environment
npm run prebuild:prod
// will build my prod environment