You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
81 lines
2.0 KiB
JavaScript
81 lines
2.0 KiB
JavaScript
const path = require('path');
|
|
const cdn = {
|
|
externals: {},
|
|
js: [],
|
|
css: [],
|
|
};
|
|
// 是否为开发环境
|
|
module.exports = {
|
|
// 项目目录
|
|
publicPath:'./',
|
|
// 输出目录
|
|
outputDir:'dist',
|
|
devServer: {
|
|
headers: {
|
|
"Access-Control-Allow-Origin": "*",
|
|
},
|
|
port: 5444
|
|
},
|
|
// 兼容性
|
|
transpileDependencies: [
|
|
// 可以是字符串或正则表达式
|
|
'ant-design-vue',
|
|
],
|
|
runtimeCompiler: true,
|
|
//关闭Eslint检测
|
|
lintOnSave: false,
|
|
productionSourceMap: false,
|
|
chainWebpack: (config) => {
|
|
config.module
|
|
.rule('swf')
|
|
.test(/.swf$/)
|
|
.use('url-loader')
|
|
.loader('url-loader')
|
|
.tap((options) => {
|
|
return {
|
|
limit: 10000,
|
|
};
|
|
});
|
|
// 移除 prefetch 插件
|
|
config.plugins.delete('prefetch')
|
|
config.plugins.delete('prefetch-index');
|
|
// 移除 preload 插件,避免加载多余的资源
|
|
config.plugins.delete('preload');
|
|
config.plugins.delete('preload-index');
|
|
// 配置cdn引入
|
|
config.plugin('html').tap((args) => {
|
|
args[0].cdn = cdn;
|
|
return args;
|
|
});
|
|
},
|
|
configureWebpack:
|
|
config => {
|
|
// CDN引入的文件
|
|
config.externals = cdn.externals;
|
|
// 公共代码抽离
|
|
config.optimization = {
|
|
// 分割代码块
|
|
splitChunks: {
|
|
cacheGroups: {
|
|
//公用模块抽离
|
|
common: {
|
|
chunks: 'initial',
|
|
minSize: 0, //大于0个字节
|
|
minChunks: 2, //抽离公共代码时,这个代码块最小被引用的次数
|
|
},
|
|
//第三方库抽离
|
|
vendor: {
|
|
priority: 1, //权重
|
|
test: /node_modules/,
|
|
chunks: 'initial',
|
|
minSize: 0, //大于0个字节
|
|
minChunks: 2, //在分割之前,这个代码块最小应该被引用的次数
|
|
},
|
|
},
|
|
},
|
|
};
|
|
// 入口文件
|
|
config.entry.app = ["babel-polyfill", "./src/main.js"];
|
|
},
|
|
}
|