| | |
| | | 'use strict' |
| | | const glob = require('glob') |
| | | const pages = {} |
| | | const IS_VENDOR = /[\\/]node_modules[\\/]/ |
| | | const pageVendor = {} |
| | | |
| | | glob.sync('./src/pages/**/main.ts').forEach(path => { |
| | | const chunk = path.split('./src/pages/')[1].split('/main.ts')[0] |
| | | const chunk_vendor = `${chunk}-vendors` |
| | | const chunk_common = `${chunk}-common` |
| | | pages[chunk] = { |
| | | entry: path, |
| | | template: 'public/index.html', |
| | | title: chunk == 'desktop/index' ? 'SmartAI' : chunk, |
| | | chunks: ['chunk-vendors', 'chunk-common', chunk] |
| | | chunks: [chunk_vendor, 'chunk-common', chunk] |
| | | } |
| | | if (chunk != 'index') { |
| | | pages[chunk].filename = 'view/' + chunk + '.html' |
| | | } |
| | | |
| | | pageVendor[chunk_vendor] = { |
| | | name: chunk_vendor, |
| | | priority: -11, |
| | | chunks: c => c.name === chunk, |
| | | test: /\.js$/, |
| | | enforce: true |
| | | } |
| | | |
| | | // pageVendor[chunk_common] = { |
| | | // name: chunk_common, |
| | | // priority: -20, |
| | | // chunks: 'initial', |
| | | // minChunks: 2, |
| | | // reuseExistingChunk: true, |
| | | // enforce: true |
| | | // } |
| | | }) |
| | | module.exports = { |
| | | pages, |
| | |
| | | } |
| | | ]) |
| | | } |
| | | |
| | | config.optimization.splitChunks({ |
| | | cacheGroups: pageVendor |
| | | }) |
| | | |
| | | // config.module.rule('fonts').use('url-loader').loader('file-loader').options({ name: 'fonts/[name].[ext]', publicPath: '../' }) |
| | | |
| | | }, |
| | | productionSourceMap: false, |
| | | filenameHashing: false, |