Files
mes-ui-d2/vue.config.js
FairyEver 445d198aa3 Revert "cdn"
This reverts commit e99ec1a794 [formerly 1e0aeabcb51f49fe2a7028a4717fbb1b491595ea] [formerly d274651f651f50ff3b0b377ea4b6c3f5ef8a8a03] [formerly 41a55b9b176b7a8ba435900e9d4895aba714ab2d] [formerly 39173dcf1f8b641c729e917c76857e1b33a65217] [formerly 90ed75e2bc3a37ee9bf0799d27fdf90a1ae429ef] [formerly aa1ae612bae7a897fa0721a903b4c85bea5cbde2 [formerly fde01cb0547b548772b3ff1e09f115fdfe7f3ee4]] [formerly 029f7c40269108d34875b92eebdb06c2a79d7b9e] [formerly 5828ea7d71cde842daf9065da8a7b49c65ab46b9] [formerly 4338dabe48e500536fce15b37507ad73dc40c628].


Former-commit-id: 9200af340213fd43d82b4a4f380ad3a6bcbbb1cc
Former-commit-id: 2e282f487940273e7b3d1fa36a8ab09052f25a57
Former-commit-id: dc89db97bf371c3f0640393fe3e6d14c81d8f848
Former-commit-id: 6838cf2a5746adf866f09aad39668f59f79e0805 [formerly 69b0defdd0ce17695d61587ff2d8b28671c420f5]
Former-commit-id: cc24a000295e4c0ddb870ad91c9e60d329cef686
Former-commit-id: 1b73c4c2b53b480d43318fa84d87472f2f45845f
Former-commit-id: 5ba6d1766fa522776f898ded841a128449cbc713
Former-commit-id: c836d50ec3fe840c2d8ead5707813a7097ecc82f
Former-commit-id: 6a9c565aebe595b6160bc8754d3a3318e98f3fc1
2019-12-13 07:53:31 +08:00

131 lines
3.9 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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 resolve = dir => require('path').join(__dirname, dir)
// 增加环境变量
process.env.VUE_APP_VERSION = require('./package.json').version
process.env.VUE_APP_BUILD_TIME = require('dayjs')().format('YYYY-M-D HH:mm:ss')
// 基础路径 注意发布之前要先修改这里
let publicPath = process.env.VUE_APP_PUBLIC_PATH || '/'
module.exports = {
// 根据你的实际情况更改这里
publicPath,
lintOnSave: true,
devServer: {
publicPath // 和 publicPath 保持一致
},
css: {
loaderOptions: {
// 设置 scss 公用变量文件
sass: {
data: `@import '~@/assets/style/public.scss';`
}
}
},
configureWebpack: {
plugins: [
// gzip
new CompressionWebpackPlugin({
filename: '[path].gz[query]',
test: new RegExp('\\.(js|css|svg|woff|ttf|json|html)$'),
threshold: 10240,
minRatio: 0.8,
deleteOriginalAssets: false
})
]
},
// 默认设置: https://github.com/vuejs/vue-cli/tree/dev/packages/%40vue/cli-service/lib/config/base.js
chainWebpack: config => {
/**
* 删除懒加载模块的 prefetch preload降低带宽压力
* https://cli.vuejs.org/zh/guide/html-and-static-assets.html#prefetch
* https://cli.vuejs.org/zh/guide/html-and-static-assets.html#preload
* 而且预渲染时生成的 prefetch 标签是 modern 版本的,低版本浏览器是不需要的
*/
config.plugins
.delete('prefetch')
.delete('preload')
// 解决 cli3 热更新失效 https://github.com/vuejs/vue-cli/issues/1559
config.resolve
.symlinks(true)
config
.plugin('theme-color-replacer')
.use(ThemeColorReplacer, [{
fileName: 'css/theme-colors.[contenthash:8].css',
matchColors: [
...forElementUI.getElementUISeries(process.env.VUE_APP_ELEMENT_COLOR) // Element-ui主色系列
],
externalCssFiles: [ './node_modules/element-ui/lib/theme-chalk/index.css' ], // optional, String or string array. Set external css files (such as cdn css) to extract colors.
changeSelector: forElementUI.changeSelector
}])
config
// 开发环境
.when(process.env.NODE_ENV === 'development',
// sourcemap不包含列信息
config => config.devtool('cheap-source-map')
)
// 预览环境构建 vue-loader 添加 filename
.when(process.env.VUE_APP_SCOURCE_LINK === 'TRUE',
VueFilenameInjector(config, {
propName: process.env.VUE_APP_SOURCE_VIEWER_PROP_NAME
})
)
// markdown
config.module
.rule('md')
.test(/\.md$/)
.use('text-loader')
.loader('text-loader')
.end()
// svg
const svgRule = config.module.rule('svg')
svgRule.uses.clear()
svgRule
.include
.add(resolve('src/assets/svg-icons/icons'))
.end()
.use('svg-sprite-loader')
.loader('svg-sprite-loader')
.options({
symbolId: 'd2-[name]'
})
.end()
// image exclude
const imagesRule = config.module.rule('images')
imagesRule
.test(/\.(png|jpe?g|gif|webp|svg)(\?.*)?$/)
.exclude
.add(resolve('src/assets/svg-icons/icons'))
.end()
// 重新设置 alias
config.resolve.alias
.set('@api', resolve('src/api'))
// 判断环境加入模拟数据
const entry = config.entry('app')
if (process.env.VUE_APP_BUILD_MODE !== 'NOMOCK') {
entry
.add('@/mock')
.end()
}
},
// 不输出 map 文件
productionSourceMap: false,
// i18n
pluginOptions: {
i18n: {
locale: 'zh-chs',
fallbackLocale: 'en',
localeDir: 'locales',
enableInSFC: true
}
}
}