'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_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, chainWebpack: config => { config.plugins.delete('named-chunks') if (process.env.NODE_ENV === 'production') { config.output.filename('js/[name].js').end() config.output.chunkFilename('js/[name].js').end() // 修改生产配置 config.plugin('extract-css').tap(() => [ { filename: `css/[name].css`, chunkFilename: `css/[name].css` } ]) } config.optimization.splitChunks({ cacheGroups: pageVendor }) // config.module.rule('fonts').use('url-loader').loader('file-loader').options({ name: 'fonts/[name].[ext]', publicPath: '../' }) //config.module.rule('fonts').use('url-loader').loader('file-loader').options({ name: 'fonts/[name].[ext]', outputPath: '../' }) }, productionSourceMap: false, filenameHashing: false, pwa: { iconPaths: { favicon32: 'favicon.ico', favicon16: 'favicon.ico' } }, devServer: { proxy: { '/track': { target: 'http://192.168.20.10:8000', // ws: true, changeOrigin: true, }, '/ws': { target: 'http://192.168.20.10:7003', // ws: true, changeOrigin: true, }, // "/data/api-v/app/findAllApp": { // // target: '/', // target: 'http://localhost:8080/', // changeOrigin: true, // pathRewrite: { // '^/data/api-v/app/findAllApp': 'apps.json' // } // }, "/api-c": { target: 'http://192.168.20.10:8004', changeOrigin: true }, "/api-v": { target: 'http://192.168.20.10:8000', changeOrigin: true }, "/api-f": { target: 'http://192.168.20.10:8011', // secure: false, changeOrigin: true }, "/api-p": { target: 'http://192.168.5.23:8010', // secure: false, changeOrigin: true }, "/api-u": { target: 'http://192.168.20.10:8000', changeOrigin: true }, "/httpImage": { target: 'http://192.168.20.10:7003', changeOrigin: true, //开启代理 }, "/files": { target: 'http://192.168.20.10:7003', changeOrigin: true, //开启代理 } } } }