加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
vue.config.js 3.92 KB
一键复制 编辑 原始数据 按行查看 历史
user_499098 提交于 2020-07-23 09:27 . 去掉无用的文件
const path = require('path');
const webpack = require('webpack');
const CompressionWebpackPlugin = require('compression-webpack-plugin');
const productionGzipExtensions = [
'js',
'css',
'html',
'svg',
'png',
'less',
'jpg',
'jpeg',
'woff',
'ttf',
'woff2',
'ico',
];
function resolve(dir) {
return path.join(__dirname, dir);
}
const isProd = process.env.NODE_ENV === 'production';
const assetsCDN = {
// webpack build externals
externals: {
vue: 'Vue',
'vue-router': 'VueRouter',
vuex: 'Vuex',
axios: 'axios',
jquery: '$',
underscore: '_',
superagent: 'superagent',
qs: 'qs',
moment: 'moment',
dayjs: 'dayjs',
'vue-apexcharts': 'VueApexCharts',
'element-ui': 'Element',
nprogress: 'NProgress',
'mavon-editor': 'MavonEditor',
'ant-design-vue': 'antd',
'viser-vue': 'ViserVue',
'bpmn-js': 'BpmnViewer',
md5: 'md5',
'crypto-js': 'CryptoJS',
codemirror: 'CodeMirror',
'vue-cropper': 'VueCropper',
'view-design': 'iview',
'vue-photo-preview': 'preview',
"@chenfengyuan/vue-qrcode": 'VueQrcode',
},
css: [
'https://unpkg.com/element-ui/lib/theme-chalk/index.css'
],
js: [
'https://unpkg.com/vue/dist/vue.js',
'https://unpkg.com/element-ui/lib/index.js'
],
};
// vue.config.js
const vueConfig = {
publicPath: './',
configureWebpack: {
plugins: [
new webpack.IgnorePlugin(/^\.\/locale$/, /moment$/),
new CompressionWebpackPlugin({
algorithm: 'gzip',
test: productionGzipExtensions,
threshold: 0,
minRatio: 0.8,
}),
],
externals: assetsCDN.externals,
},
pages: {
index: {
entry: 'src/main.js',
chunks: ['chunk-vendors', 'chunk-common', 'index'],
},
},
chainWebpack: config => {
config.resolve.alias
.set('@$', resolve('src'))
.set('@api', resolve('src/api'))
.set('@assets', resolve('src/assets'))
.set('@comp', resolve('src/components'))
.set('@views', resolve('src/views'))
.set('@layout', resolve('src/layout'))
.set('@config', resolve('src/config'))
.set('@mixins', resolve('src/mixins'))
.set('@static', resolve('src/static'));
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]',
});
//判断是否为生产环境
if (isProd) {
console.log('当前环境为生产环境');
}
},
css: {
loaderOptions: {
less: {
modifyVars: {},
javascriptEnabled: true,
},
},
},
devServer: {
port: 3000,
proxy: {
'/jeecg-boot': {
//请求本地 需要jeecg-boot后台项目
target: 'https://www.shengtai.club',
ws: true,
changeOrigin: true,
},
},
},
//可以将其设置为 false 以加速生产环境构建。
productionSourceMap: false,
//保存时提示
lintOnSave: undefined,
// babel-loader no-ignore node_modules/*
transpileDependencies: [],
};
// preview.pro.loacg.com only do not use in your production;
if (process.env.VUE_APP_PREVIEW === 'true') {
console.log('VUE_APP_PREVIEW', true);
}
// vue.config.js
module.exports = vueConfig;
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化