|
|
|
|
@ -15,6 +15,22 @@ const name = defaultSettings.title // page title
|
|
|
|
|
// port = 9528 npm run dev OR npm run dev --port = 9528
|
|
|
|
|
const port = process.env.port || process.env.npm_config_port || 8014 // dev port
|
|
|
|
|
|
|
|
|
|
/** 本地开发接口代理目标(来自 .env.development,勿提交敏感信息) */
|
|
|
|
|
const devProxyTarget =
|
|
|
|
|
process.env.DEV_PROXY_TARGET || 'http://book-sqhj.ali251.langye.net'
|
|
|
|
|
|
|
|
|
|
/** 转发给后端前改写 Origin/Referer(部分 nginx/WAF 不信任 localhost 来源会直接 403) */
|
|
|
|
|
function rewriteProxyOriginReferer(proxyReq) {
|
|
|
|
|
try {
|
|
|
|
|
const base = devProxyTarget.replace(/\/+$/, '')
|
|
|
|
|
const u = new URL(base)
|
|
|
|
|
proxyReq.setHeader('referer', `${base}/`)
|
|
|
|
|
proxyReq.setHeader('origin', `${u.protocol}//${u.host}`)
|
|
|
|
|
} catch (e) {
|
|
|
|
|
// DEV_PROXY_TARGET 非法时跳过
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// All configuration item explanations can be find in https://cli.vuejs.org/config/
|
|
|
|
|
module.exports = {
|
|
|
|
|
/**
|
|
|
|
|
@ -53,11 +69,22 @@ module.exports = {
|
|
|
|
|
"^/query": "",
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
[process.env.VUE_APP_BASE_API]: {
|
|
|
|
|
target: process.env.VUE_APP_BASE_API,
|
|
|
|
|
changeOrigin: true, //配置跨域
|
|
|
|
|
pathRewrite: {
|
|
|
|
|
['^' + process.env.VUE_APP_BASE_API]: process.env.VUE_APP_BASE_API
|
|
|
|
|
// 开发环境 .env.development 中 VUE_APP_BASE_API 应为空或相对路径,使请求发往本机再由下列规则转发,避免浏览器 CORS
|
|
|
|
|
'^/api': {
|
|
|
|
|
target: devProxyTarget,
|
|
|
|
|
changeOrigin: true,
|
|
|
|
|
secure: false,
|
|
|
|
|
ws: true,
|
|
|
|
|
onProxyReq(proxyReq) {
|
|
|
|
|
rewriteProxyOriginReferer(proxyReq)
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
'^/print': {
|
|
|
|
|
target: devProxyTarget,
|
|
|
|
|
changeOrigin: true,
|
|
|
|
|
secure: false,
|
|
|
|
|
onProxyReq(proxyReq) {
|
|
|
|
|
rewriteProxyOriginReferer(proxyReq)
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|