为了区分项目是生产还是开发模式,以及外部CDN资源引用(生成模式使用CDN,开发模式使用本地资源),需要根据不同的模式,修改public/index.html的title和cdn引入方式
修改vue.config.js文件,添加是否为生产模式的标记
module.exports={// 如果打包文件资源路径没有distpublicPath: '',chainWebpack:config =>{// 生产环境config.when(process.env.NODE_ENV === 'production', config => {config.entry('app').clear().add('./src/main-prod.js')// 生产模式下,html的isProd标记为trueconfig.plugin('html').tap(args =>{args[0].isProd = truereturn args})})// 开发环境config.when(process.env.NODE_ENV === 'development', config => {config.entry('app').clear().add('./src/main-dev.js')// 开发模式下,html的isProd标记为falseconfig.plugin('html').tap(args =>{args[0].isProd = falsereturn args})})}}
编辑public下的index.html文件,根据不同环境修改title和资源引入方式
<head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width,initial-scale=1.0"><link rel="icon" href="<%= BASE_URL %>favicon.ico"><title><%= htmlWebpackPlugin.options.isProd ? '' : 'dev-' %><%= htmlWebpackPlugin.options.title %></title><% if(htmlWebpackPlugin.options.isProd){ %><link rel="stylesheet" href="https://cdn.staticfile.org/font-awesome/5.15.2/css/all.min.css" /><link rel="stylesheet" href="https://cdn.staticfile.org/nprogress/0.2.0/nprogress.min.css" /><link rel="stylesheet" href="https://cdn.bootcdn.net/ajax/libs/element-ui/2.15.0/theme-chalk/index.min.css"><link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/mavon-editor@2.9.1/dist/css/index.css" /><script src="https://cdn.bootcdn.net/ajax/libs/vue/2.6.11/vue.min.js"></script><script src="https://cdn.bootcdn.net/ajax/libs/element-ui/2.15.0/index.min.js"></script><script src="https://cdn.jsdelivr.net/npm/echarts@5.0.2/dist/echarts.min.js"></script><script src="https://cdn.jsdelivr.net/npm/axios@0.21.1/dist/axios.min.js"></script><script src="https://cdn.jsdelivr.net/npm/vue-router@3.4.9/dist/vue-router.min.js"></script><script src="https://cdn.jsdelivr.net/npm/lodash@4.17.20/lodash.min.js"></script><script src="https://cdn.jsdelivr.net/npm/mavon-editor@2.9.1/dist/mavon-editor.js"></script><script src="https://cdn.jsdelivr.net/npm/nprogress@0.2.0/nprogress.min.js"></script><% } %></head>
