ember.js EmberJs:如何将数据动态注入ENV?

yptwkmov  于 2022-11-05  发布在  其他
关注(0)|答案(1)|浏览(173)

我需要在构建阶段之前动态注入一些数据。
在我的config/environment.js中,我有:

module.exports = function(environment) {
  environment = 'production';
  var ENV = {
    APP: {
      API_HOST: 'https://apihost1.com,
      secret: 'key1'
     }
   };
  return ENV;
};

如何动态地将“APP”对象更改为其他对象:

APP: {
      API_HOST: 'https://apihost2.com,
      secret: 'key2'
     }

在根据我package.json中的执行命令进行构建之前?

"scripts": {
    "build": "$CONFIG_NAME ember build",
},

我在考虑npm脚本,但无法实现。有人有解决方案吗?

abithluo

abithluo1#

您可以在config/environment中执行以下操作:

const customConfig = require(`./config.${process.env.CONFIG_NAME}.json`);

module.exports = function(environment) {
  environment = 'production';
  var ENV = {
    APP: {
      ...customConfig,
      otherStuff: 'bla'
     }
   };
  return ENV;
};

那么如果您希望在构建过程中将config/config.foo.json的内容合并到ENV.APP中,则可以运行env CONFIG_NAME=foo ember build
env tho是一个unix的东西,这将工作在Linux和MacOS以及其他unix系统。
对于Windows,您可以使用PowerShell设置env变量,或者安装cross-env并执行npm run cross-env CONFIG_NAME=foo ember build

相关问题