代码拉取完成,页面将自动刷新
// 对webpack进行增量配置
// 修改此处文件后一定要重启当前项目
const { resolve } = require('path')
const { defineConfig } = require('@vue/cli-service')
const CompressionPlugin = require('compression-webpack-plugin')
// 定义一个promise的延时器
const delay = (ms = 300) => {
return new Promise(resolve => {
setTimeout(resolve, ms)
})
}
module.exports = defineConfig({
transpileDependencies: true,
// 对node_modules目录中的库文件打包时进行优化配置
configureWebpack: {
// source-map 关闭,关闭好处打包后的文件小,而且安全
devtool: false,
performance: {
// 修改入口的文件大小,它默认为500kb
maxEntrypointSize: 10000000
},
// 忽略打包 打包时进行cdn优化
externals: {
// key它是打包后在window对象中的属性
// value 它是 import 导入时它的名称
// axios: 'axios',
// dayjs: 'dayjs',
// lodash: 'lodash',
// 'element-ui': 'ElementUI'
},
plugins: [
// 压缩 -- gzip压缩 压缩后的代码在上线时,需要nginx对应的要配置一下才能使用
// new CompressionPlugin({
// // 压缩算法 gzip 现在所有的浏览器都是支持的
// algorithm: 'gzip',
// test: /\.(js|css|json|txt)(\?.*)?$/i,
// // threshold: 10240,
// threshold: 100,
// // 压缩比
// minRatio: 0.7,
// // 是否删除原始文件
// deleteOriginalAssets: true
// })
]
},
chainWebpack(config) {
config.optimization.splitChunks({
chunks: 'all', // all async initial
cacheGroups: {
libs: {
name: 'chunk-libs',
test: /[\\/]node_modules[\\/]/,
priority: 10,
chunks: 'initial' // only package third parties that are initially dependent
},
elementUI: {
name: 'chunk-elementUI', // split elementUI into a single package
priority: 20,
test: /[\\/]node_modules[\\/]_?element-ui(.*)/ // in order to adapt to cnpm
},
xlsx: {
name: 'chunk-xlsx', // split elementUI into a single package
priority: 19,
test: /[\\/]node_modules[\\/]_?xlsx(.*)/ // in order to adapt to cnpm
},
commons: {
name: 'chunk-commons',
test: resolve('src/components'), // can customize your rules
minChunks: 3, // minimum common number
priority: 5,
reuseExistingChunk: true
}
}
})
},
// 对开发时服务器进行增量配置
devServer: {
// 中间件,利用此中间件,完成mock数据生成
setupMiddlewares: (middlewares, { app }) => {
return middlewares
}
// 代理,用于在开发阶段进行跨域解决方案
// 模糊匹配 /api /api1 /api2
// proxy: {
// // 请求地址如果想要被代理,则一定不能有请求的域名
// '/api': {
// // https://xx/api/v2/getNowPlay
// target: 'https://api.iynn.cn/film',
// // 修改请求的host主机为目标地址
// changeOrigin: true
// // url重写
// // /aa/api/xxxx => 把请求url地址以/aa开头的字符串给替换为空
// // pathRewrite: { '^/aa': '' }
// },
// '/maizuo': {
// target: 'https://m.maizuo.com',
// changeOrigin: true,
// pathRewrite: { '^/maizuo': '' }
// }
// }
}
})
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。