话不多说,直奔主题
第一步,在根目录或/src 下新建一个 proxy.conf.json 文件
备注:这里不用纠结文件名称即
xxx.xxx.json,只要使用时能找到,且正确配置文件内容格式即可
{"/dev-list": {"target": "https://a.examples.com/dev", // 代理地址"secure": true, // 接口是否开启 https"changeOrigin": true // 支持跨域},"/dev-info": {"target": "https://a.examples.com/dev","secure": true,"changeOrigin": true},"/test-list": {"target": "http://b.examples.com/test","secure": false,"changeOrigin": true,"logLevel": "debug" // 代理日志},"/test-info": {"target": "http://b.examples.com/test","secure": false,"changeOrigin": true,"logLevel": "debug"}
}
第二步,在 angular.json 文件中找到 architect 下的 serve ,并在 serve 内的 options 选项内配置 proxyConfig,没有就依次创建对应选项参数,事例如下:
...
{"architect": {..."serve": {..."options": {...// 当前配置文件所做目录,相对于`angular.json`文件的位置,具体以实际配置位置为准"proxyConfig": "src/proxy.conf.json" }}}
}
...
第三步,重启项目,验证成果
说明:这里的
npm run start实际指向的也是ng serve启动方式,故不用配置--proxy-config
npm run start
===OR===
ng serve
第一步,在根目录或/src 下新建一个 proxy.conf.js 文件
备注:这里不用纠结文件名称即
xxx.xxx.js,只要使用时能找到,且正确配置文件内容格式即可
const PROXY_CONFIG = [{context: ["/dev-list","/dev-info"],"target": "https://a.examples.com/dev","secure": true,"changeOrigin": true},{context: ["/test-list","/test-info"],"target": "http://b.examples.com/test","secure": false,"changeOrigin": true,"logLevel": "debug"}
]module.exports = PROXY_CONFIG
第二步,在 angular.json 文件中找到 architect 下的 serve ,并在 serve 内的 options 选项内配置 proxyConfig,没有就依次创建对应选项参数,事例如下:
...
{"architect": {..."serve": {..."options": {...// 当前配置文件所做目录,相对于`angular.json`文件的位置,具体以实际配置位置为准"proxyConfig": "src/proxy.conf.js" }}}
}
...
第三步,重启项目,验证成果
说明:这里的
npm run start实际指向的也是ng serve启动方式,故不用配置--proxy-config
npm run start
===OR===
ng serve
相对来讲,两种方式都可实现,具体差别也不大,但若是需要配置多个面向 target 的代理地址,且同时需要多个匹配规则时,推荐使用 方式二 proxy.conf.js 的方式