123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117 |
- const path = require('path')
- const webpack = require('webpack')
- const ThemeColorReplacer = require('webpack-theme-color-replacer')
- function resolve (dir) {
- return path.join(__dirname, dir)
- }
- // vue.config.js
- module.exports = {
- /*
- Vue-cli3:
- Crashed when using Webpack `import()` #2463
- https://github.com/vuejs/vue-cli/issues/2463
- */
- /*
- pages: {
- index: {
- entry: 'src/main.js',
- chunks: ['chunk-vendors', 'chunk-common', 'index']
- }
- },
- */
- configureWebpack: {
- plugins: [
- // Ignore all locale files of moment.js
- new webpack.IgnorePlugin(/^\.\/locale$/, /moment$/),
- // 生成仅包含颜色的替换样式(主题色等)
- new ThemeColorReplacer({
- fileName: 'css/theme-colors.css',
- matchColors: getAntdSerials('#1890ff') // 主色系列
- })
- ]
- },
- chainWebpack: (config) => {
- config.resolve.alias
- .set('@$', resolve('src'))
- const svgRule = config.module.rule('svg')
- svgRule.uses.clear()
- svgRule
- .oneOf('inline')
- .resourceQuery(/inline/)
- .use('vue-svg-icon-loader')
- .loader('vue-svg-icon-loader')
- .end()
- .end()
- .oneOf('external')
- .use('file-loader')
- .loader('file-loader')
- .options({
- name: 'assets/[name].[hash:8].[ext]'
- })
- /* svgRule.oneOf('inline')
- .resourceQuery(/inline/)
- .use('vue-svg-loader')
- .loader('vue-svg-loader')
- .end()
- .end()
- .oneOf('external')
- .use('file-loader')
- .loader('file-loader')
- .options({
- name: 'assets/[name].[hash:8].[ext]'
- })
- */
- },
- css: {
- loaderOptions: {
- less: {
- modifyVars: {
- /* less 变量覆盖,用于自定义 ant design 主题 */
- /*
- 'primary-color': '#F5222D',
- 'link-color': '#F5222D',
- 'border-radius-base': '4px',
- */
- },
- javascriptEnabled: true
- }
- }
- },
- devServer: {
- // development server port 8000
- port: 8000
- // proxy: {
- // '/api': {
- // // target: 'https://mock.ihx.me/mock/5baf3052f7da7e07e04a5116/antd-pro',
- // target: 'https://mock.ihx.me/mock/5baf3052f7da7e07e04a5116/antd-pro',
- // ws: false,
- // changeOrigin: true
- // }
- // }
- },
- // disable source map in production
- productionSourceMap: false,
- lintOnSave: undefined,
- // babel-loader no-ignore node_modules/*
- transpileDependencies: []
- }
- function getAntdSerials (color) {
- var lightens = new Array(9).fill().map((t, i) => {
- return ThemeColorReplacer.varyColor.lighten(color, i / 10)
- })
- // 此处为了简化,采用了darken。实际按color.less需求可以引入tinycolor, colorPalette变换得到颜色值
- var darkens = new Array(6).fill().map((t, i) => {
- return ThemeColorReplacer.varyColor.darken(color, i / 10)
- })
- return lightens.concat(darkens)
- }
|