123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102 |
- const path = require('path')
- const resolve = dir => path.join(__dirname, '.', dir)
- module.exports = {
- /**
- * baseUrl等价于webpack打包的资源引用的publishPath和全局的BASER_URL变量
- */
- publicPath: './',
- // 打包的静态资源相对outputDir的路径,outputDir使用默认值'dist'
- assetsDir: 'static',
- /**
- * 开启保存自动代码检测,设置true可配合derServer overlay浏览器上显示错误,强制进行代码检测
- * 也可设置error可直接阻断打包
- */
- lintOnSave: 'error',
- // 默认不使用template渲染模式,明确只使用运行时打包项目
- runtimeCompiler: false,
- /**
- * 开发环境还是使用默认的 inline-source-map
- */
- productionSourceMap: false,
- /**
- * 给插入index.html的link、script标签添加crossorigin属性
- */
- // crossorigin: 'anonymous',
-
- css: {
- loaderOptions: {
- less: {
- lessOptions: {
- modifyVars: {
- hack: `true; @import "@/styles/vant-ui.less";`
- }
- }
- }
- }
- },
- chainWebpack: config => {
- // config
- // .plugin('webpack-bundle-analyzer')
- // .use(require('webpack-bundle-analyzer').BundleAnalyzerPlugin)
- // 提取 manifest(runtime)
- config.optimization
- .runtimeChunk({
- name: 'manifest'
- })
- // 代码分包调整
- config.optimization
- .splitChunks({
- chunks: 'all',
- cacheGroups: {
- libs: {
- name: 'chunk-libs',
- test: /[\\/]node_modules[\\/]/,
- chunks: 'initial' // 只打包初始时依赖的第三方
- },
- commons: {
- name: 'chunk-commons',
- test: resolve('src'), // 可自定义拓展你的规则
- chunks: 'initial',
- reuseExistingChunk: true
- }
- }
- })
- // config.module
- // .rule('scss')
- // .loader('sass-resources-loader')
- // .options({
- // resources: path.resolve('src/styles/global.scss')
- // })
- // .end()
- config.module
- .rule('svg')
- .exclude.add(resolve('src/icons'))
- .end()
- config.module
- .rule('icons')
- .test(/\.svg$/)
- .include.add(resolve('src/icons'))
- .end()
- .use('svg-sprite-loader')
- .loader('svg-sprite-loader')
- .options({
- symbolId: 'icon-[name]'
- })
- .end()
- config.resolve.alias
- .set('src', resolve('src'))
- .set('@', resolve('src'))
- .set('@api', resolve('src/api'))
- .set('@components', resolve("src/components"))
- .set('@assets', resolve('src/assets'))
- .set('@store', resolve('src/store'))
- .set('@utils', resolve('src/utils'))
- .set('@views', resolve('src/views'))
- // .set('@', resolve('public'))
-
- // 给异步加载的静态资源标签添加crossorigin属性
- config.output.crossOriginLoading('anonymous')
- },
- }
|