有什么方法可以读取来自environment.ts文件的帖子编号和主机名并运行ng serve命令。我的要求是为Dev,QA和Prod环境使用不同的端口和主机。
现在我要在angular.json文件中手动更改
“服务”:{ “ builder”:“ @ angular-devkit / build-angular:dev-server”, “选项”:{ “端口”:5001 “主持人”:“ 10.20.45.10” }
我想根据构建形式从environment.ts和environment-prod.ts读取
答案 0 :(得分:0)
当有角度的应用程序运行时,环境将是配置的好地方,但是在这里我们尝试基于配置文件运行cli,我希望在angular.json
文件中进行设置,但是我面对死胡同,所以我去编写一个节点脚本,它将从文件中获取配置,然后运行该配置的cli基础,也许有更好的方法,但这是我们所得到的。
我在这里使用ts-node
run.ts
import { exec } from 'child_process';
import { environment as dev } from './src/environments/environment';
import { environment as prod } from './src/environments/environment.prod';
function run(command: string): void {
exec(command).stdout.on('data', (data) => {
console.log(data.toString());
});
}
const target = process.argv.slice(2)[0] || 'dev';
console.log(` running in => ${target} `);
switch (target) {
case 'prod': {
run(`ng s --host ${prod.url} --port ${prod.port} `);
break;
}
default: {
run(`ng s --host ${dev.url} --port ${dev.port} `);
}
}
配置文件run-tsconfig.json
(我已经从tsconfig.json复制了此文件)
{
"compileOnSave": false,
"compilerOptions": {
"baseUrl": "./",
"module": "commonjs",
"moduleResolution": "node",
"importHelpers": true,
"target": "es2015",
"typeRoots": [
"node_modules/@types"
]
}
}
environment.prod.ts
export const environment = {
production: true,
url: '127.0.0.1',
port: 2000
};
environment.ts
export const environment = {
production: false,
url: '127.0.0.1',
port: 3000
};
运行生产网址的客户端库
ts-node --project run-tsconfig.json run.ts prod
默认情况下将从environment.ts(dev)读取url信息
ts-node --project run-tsconfig.json run.ts