Ember Js:如何将数据动态注入到 ENV 中?
EmberJs: how to dynamicaly inject data into ENV?
我需要在构建阶段之前动态注入一些数据。
在我的 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 脚本,但无法实现。
有人有解决方案吗?
你可以在 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;
};
然后你可以 运行 env CONFIG_NAME=foo ember build
如果你想在构建过程中将 config/config.foo.json
的内容合并到 ENV.APP
中。
env
这是一个 unix 的东西,这将适用于 Linux 和 MacOS 以及其他 unix 系统。
对于 windows,您可以使用 PowerShell 设置环境变量或安装 cross-env
并执行 npm run cross-env CONFIG_NAME=foo ember build
.
我需要在构建阶段之前动态注入一些数据。
在我的 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 脚本,但无法实现。 有人有解决方案吗?
你可以在 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;
};
然后你可以 运行 env CONFIG_NAME=foo ember build
如果你想在构建过程中将 config/config.foo.json
的内容合并到 ENV.APP
中。
env
这是一个 unix 的东西,这将适用于 Linux 和 MacOS 以及其他 unix 系统。
对于 windows,您可以使用 PowerShell 设置环境变量或安装 cross-env
并执行 npm run cross-env CONFIG_NAME=foo ember build
.