Files
mes-ui-d2/vue.config.js
liyang 58d91f1379 👷 Add netlify build & VUE_APP_SCOURCE_LINK setting
Former-commit-id: ae08781d2775286fb2b38d2f3758f7a2bbc6dfc0 [formerly ae08781d2775286fb2b38d2f3758f7a2bbc6dfc0 [formerly ae08781d2775286fb2b38d2f3758f7a2bbc6dfc0 [formerly ae08781d2775286fb2b38d2f3758f7a2bbc6dfc0 [formerly eef96f0d74a1339188be2783182a8dfc06e4c626 [formerly d89e683086aeede5d0fe6a5a32b6c21e1d60372f]]]]]
Former-commit-id: c205c463678b90b72bd0b49b6fbdeb59c6d8bb8f
Former-commit-id: 2a0e3afb73bb926c3647cd9479139cf4686f9176
Former-commit-id: 774c6e6c55c4ce7a7b6075e6b6da28764fdfd68c [formerly cb2591a93c79fb293a509556026f173877a3f844]
Former-commit-id: 75b61db1b1ca88d386a0a4bbf4bfae2a8bea9834
Former-commit-id: 878fb523a3ca703be877951aee9d0c5c03c20e3d
Former-commit-id: 7fd73f84aa2a97e9399ff65481b4e2f99739d7ea
Former-commit-id: 3d3ebc2e3bab1da305fb076162a3c80481650500
Former-commit-id: f5eb607bc55a529dcf1d1852dcad69f2c2bef7a6
2019-05-10 09:56:55 +08:00

120 lines
3.5 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 UglifyJsPlugin = require('uglifyjs-webpack-plugin')
const VueFilenameInjector = require('./tools/vue-filename-injector')
// 拼接路径
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 = '/'
if (process.env.VUE_APP_BUILD_MODE === 'NETLIFY') publicPath = '/dist/'
module.exports = {
publicPath, // 根据你的实际情况更改这里
lintOnSave: true,
devServer: {
publicPath // 和 publicPath 保持一致
},
css: {
loaderOptions: {
// 设置 scss 公用变量文件
sass: {
data: `@import '~@/assets/style/public.scss';`
}
}
},
// 默认设置: 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
// 开发环境
.when(process.env.NODE_ENV === 'development',
// sourcemap不包含列信息
config => config.devtool('cheap-source-map')
)
// TRAVIS 构建 vue-loader 添加 filename
.when(process.env.VUE_APP_SCOURCE_LINK === 'TRUE',
VueFilenameInjector(config, {
propName: process.env.VUE_APP_SOURCE_VIEWER_PROP_NAME
})
)
// 非开发环境
.when(process.env.NODE_ENV !== 'development', config => {
config.optimization
.minimizer([
new UglifyJsPlugin({
uglifyOptions: {
// 移除 console
// 其它优化选项 https://segmentfault.com/a/1190000010874406
compress: {
drop_console: true,
drop_debugger: true,
pure_funcs: ['console.log']
}
}
})
])
})
// markdown
config.module
.rule('md')
.test(/\.md$/)
.use('text-loader')
.loader('text-loader')
.end()
// i18n
config.module
.rule('i18n')
.resourceQuery(/blockType=i18n/)
.use('i18n')
.loader('@kazupon/vue-i18n-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()
}
}
}