update
This commit is contained in:
+56
-4
@@ -1,7 +1,8 @@
|
||||
const CompressionWebpackPlugin = require('compression-webpack-plugin')
|
||||
const VueFilenameInjector = require('@d2-projects/vue-filename-injector')
|
||||
|
||||
const ThemeColorReplacer = require('webpack-theme-color-replacer')
|
||||
const forElementUI = require('webpack-theme-color-replacer/forElementUI')
|
||||
const cdnDependencies = require('./dependencies-cdn')
|
||||
|
||||
// 拼接路径
|
||||
const resolve = dir => require('path').join(__dirname, dir)
|
||||
@@ -13,6 +14,16 @@ process.env.VUE_APP_BUILD_TIME = require('dayjs')().format('YYYY-M-D HH:mm:ss')
|
||||
// 基础路径 注意发布之前要先修改这里
|
||||
let publicPath = process.env.VUE_APP_PUBLIC_PATH || '/'
|
||||
|
||||
// 设置不参与构建的库
|
||||
let externals = {}
|
||||
cdnDependencies.forEach(package => { externals[package.name] = package.library })
|
||||
|
||||
// 引入文件的 cdn 链接
|
||||
const cdn = {
|
||||
css: cdnDependencies.map(e => e.css).filter(e => e),
|
||||
js: cdnDependencies.map(e => e.js).filter(e => e)
|
||||
}
|
||||
|
||||
module.exports = {
|
||||
// 根据你的实际情况更改这里
|
||||
publicPath,
|
||||
@@ -24,12 +35,46 @@ module.exports = {
|
||||
loaderOptions: {
|
||||
// 设置 scss 公用变量文件
|
||||
sass: {
|
||||
data: `@import '~@/assets/style/public.scss';`
|
||||
prependData: `@import '~@/assets/style/public.scss';`
|
||||
}
|
||||
}
|
||||
},
|
||||
configureWebpack: config => {
|
||||
const configNew = {}
|
||||
if (process.env.NODE_ENV === 'production') {
|
||||
configNew.externals = externals
|
||||
configNew.plugins = [
|
||||
// gzip
|
||||
new CompressionWebpackPlugin({
|
||||
filename: '[path].gz[query]',
|
||||
test: new RegExp('\\.(' + ['js', 'css'].join('|') + ')$'),
|
||||
threshold: 10240,
|
||||
minRatio: 0.8,
|
||||
deleteOriginalAssets: false
|
||||
})
|
||||
]
|
||||
}
|
||||
if (process.env.NODE_ENV === 'development') {
|
||||
// 关闭 host check,方便使用 ngrok 之类的内网转发工具
|
||||
configNew.devServer = {
|
||||
disableHostCheck: true
|
||||
}
|
||||
}
|
||||
return configNew
|
||||
},
|
||||
// 默认设置: https://github.com/vuejs/vue-cli/tree/dev/packages/%40vue/cli-service/lib/config/base.js
|
||||
chainWebpack: config => {
|
||||
/**
|
||||
* 添加 CDN 参数到 htmlWebpackPlugin 配置中
|
||||
*/
|
||||
config.plugin('html').tap(args => {
|
||||
if (process.env.NODE_ENV === 'production') {
|
||||
args[0].cdn = cdn
|
||||
} else {
|
||||
args[0].cdn = []
|
||||
}
|
||||
return args
|
||||
})
|
||||
/**
|
||||
* 删除懒加载模块的 prefetch preload,降低带宽压力
|
||||
* https://cli.vuejs.org/zh/guide/html-and-static-assets.html#prefetch
|
||||
@@ -53,9 +98,8 @@ module.exports = {
|
||||
changeSelector: forElementUI.changeSelector
|
||||
}])
|
||||
config
|
||||
// 开发环境
|
||||
// 开发环境 sourcemap 不包含列信息
|
||||
.when(process.env.NODE_ENV === 'development',
|
||||
// sourcemap不包含列信息
|
||||
config => config.devtool('cheap-source-map')
|
||||
)
|
||||
// 预览环境构建 vue-loader 添加 filename
|
||||
@@ -101,7 +145,15 @@ module.exports = {
|
||||
.add('@/mock')
|
||||
.end()
|
||||
}
|
||||
// 分析工具
|
||||
if (process.env.npm_config_report) {
|
||||
config
|
||||
.plugin('webpack-bundle-analyzer')
|
||||
.use(require('webpack-bundle-analyzer').BundleAnalyzerPlugin)
|
||||
}
|
||||
},
|
||||
// 不输出 map 文件
|
||||
productionSourceMap: false,
|
||||
// i18n
|
||||
pluginOptions: {
|
||||
i18n: {
|
||||
|
||||
Reference in New Issue
Block a user