目的从 url 获取前端请求基地址, 通过环境变量注入
- shell 脚本
#!/bin/bash
parse_json() {
echo "${1//\"/}" | sed "s/.*$2:\([^,}]*\).*/\1/"
}
RESULT=$(parse_json $(curl -s https://www.fastmock.site/mock/cd8e3b8f92711dd9e4a424cf0603e8fe/api/getHost) "data")
npm run build -- --inject_host=$RESULT
- vue.config.js
const isProduct = () => {
return process.env.NODE_ENV == 'production'
}
const argv = process.argv
module.exports = {
publicPath: './',
chainWebpack: config => {
config.when(isProduct(), () => {
config.plugin('define').tap(args => {
let name = 'process.env'
let customHost = null
argv.forEach(item => {
if (/inject_host/.test(item)) {
customHost = JSON.stringify(item.split('=')[1])
return true
}
})
if (customHost) {
args[0][name] = Object.assign(args[0][name], {
VUE_APP_BASE_API: customHost
})
}
return args
})
})
}
}
npm 注入参数 (阮一峰)
获取json参数