【问题标题】:Angular environment variables on an ejected project已弹出项目的 Angular 环境变量
【发布时间】:2018-01-29 19:19:27
【问题描述】:

我想达到什么目标?
根据我当前在 Ejected 项目(ng 弹出)上编译的 NODE_ENV 生成环境变量。 与使用 Angular Cli 定位环境相同: ng build --prod || ng build --dev.

我尝试了什么?

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

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 em>)。


有什么想法吗?

类似问题:

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

【问题讨论】:

    标签: angular webpack


    【解决方案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
    

    【讨论】:

    • 如果你在 Windows 上,你必须改变斜杠和复制命令 cp 复制如下: "prebuild:dev": "copy environment\\environment.dev.ts src\\environment \\environment.ts"
    猜你喜欢
    • 2017-06-01
    • 2011-11-25
    • 1970-01-01
    • 1970-01-01
    • 2019-06-13
    • 1970-01-01
    • 2018-03-16
    • 2020-04-02
    • 1970-01-01
    相关资源
    最近更新 更多