我很好奇,看看有没有人有更好或更简单的方法来做到这一点,但这里是我想出的解决方案。
我创建了一个小的js脚本,保存在项目根目录下的config.js文件中。然后,我在npm postinstall脚本中添加该脚本以在ng构建之前运行。
/src/environments/environment.prod.ts
export const environment = {
production: true,
URL: 'https://mykickassapp.herokuapp.com/'
};
config.js
const fs = require("fs");
const appName = process.env.HEROKU_APP_NAME;
if (appName) {
const data = fs.readFileSync('./src/environments/environment.prod.ts', 'utf-8');
const appURL = `URL: 'https://${appName}.herokuapp.com',`;
const newValue = data.replace(/URL:(.*)/g, appURL);
console.log(newValue);
fs.writeFileSync('./src/environments/environment.prod.ts', newValue, 'utf-8');
}
的package.json
...
"scripts": {
...
"test": "cross-env DEBUG=true jasmine",
"postinstall": "node config.js && ng build --aot --prod"
},
...