Files
mes-ui-d2/vue.config.js
liyang 953a203e80 🚧 netlify test
Former-commit-id: 694fa8abd65ae947c9f7a8869ec6603491ed1fda [formerly 34bc2923d35422bbcba984e32486c0205ec11f10] [formerly 694fa8abd65ae947c9f7a8869ec6603491ed1fda [formerly 34bc2923d35422bbcba984e32486c0205ec11f10] [formerly 694fa8abd65ae947c9f7a8869ec6603491ed1fda [formerly 34bc2923d35422bbcba984e32486c0205ec11f10] [formerly 34bc2923d35422bbcba984e32486c0205ec11f10 [formerly b7650434d305b2c409e552286f9ecc4e0136d944 [formerly d354fe3ebe71a63d5216ede92a40e6c416fbf0b1]]]]]
Former-commit-id: e72d2064d00890c9fd6843506d5598e61bc1c083
Former-commit-id: 763de57fa64dacdc978f9b4707088e40f021492a
Former-commit-id: f99c4b74eaf7ab391b8ab19cf46a5751fa804f94 [formerly 40e43416861cb5c2f4397e79ed2b980ddfe0d20f]
Former-commit-id: 034144fb00d002147875d1505895a7a6e7f31a65
Former-commit-id: 6668fa18dd54e1b034c7bb81cdb84a705af364fb
Former-commit-id: eeb92acefc3389b1c0acf85752840ecdefc69d56
Former-commit-id: 478ac903d508cd617b2d5050968fb224b5ea5b93
Former-commit-id: 2fcff008fbc02b6351ebb956778a1cf2359bcf76
2019-05-10 10:23:54 +08:00

118 lines
3.4 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 = '/'
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()
}
}
}