123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107 |
- const path = require('path');
- const webpack = require('webpack');
- const glob = require('glob');
- function getMultPages() {
- const defaultTemplate = 'public/index.html';
- const enteies = {};
- const apps = glob.sync('src/apps/**/main.js');
- apps.forEach(path => {
- const reg = /\/(\w+)\/main.js$/.exec(path);
- if (reg && reg[1]) {
- const tem = glob.sync(`src/apps/${reg[1]}/index.html`);
- const name = reg[1].toLowerCase();
- enteies[name] = {
- entry: path,
- template: tem.length ? tem[0] : defaultTemplate,
- filename: `${process.env.NODE_ENV === 'development' ? `${name}/` : ''}index.html`,
- title: name,
- };
- }
- });
- return enteies;
- }
- function filterPages(pages) {
- if (process.env.NODE_ENV === 'development') {
- if (process.env.VUE_APP_LOCAL_ENV && process.env.VUE_APP_LOCAL_ENV !== '*') {
- const apps = process.env.VUE_APP_LOCAL_ENV.toLowerCase();
- Object.keys(pages).forEach(key => {
- if (!apps.includes(key)) {
- delete pages[key];
- }
- });
- }
- } else {
- const buildApp = process.argv.slice(2)[1];
- if (pages[buildApp]) {
- pages = { [buildApp]: pages[buildApp] };
- }
- }
- return pages;
- }
- let pages = filterPages(getMultPages());
- module.exports = {
- baseUrl: process.env.VUE_APP_BUILD_BASE_URL,
- pages,
- outputDir: path.join('dist', process.env.NODE_ENV === 'development' ? '' : Object.keys(pages)[0]),
- configureWebpack: {
- performance: {
- maxEntrypointSize: 512000,
- maxAssetSize: 1024000,
- },
- },
- chainWebpack: config => {
- Object.keys(pages).forEach(name => {
- // config.plugins.delete(`preload-${name}`);
- config.plugins.delete(`prefetch-${name}`);
- config.plugin('provide').use(
- new webpack.ProvidePlugin({
- t: [path.join(__dirname, 'src/commonutils/test'), 'default'],
- })
- );
- });
- },
- css: {
- sourceMap: false,
- loaderOptions: {
- stylus: {
- import: [path.join(__dirname, 'src/assets/css/fun.styl')],
- },
- },
- },
- devServer: {
- overlay: {
- warnings: false,
- errors: true,
- },
- disableHostCheck: true,
- host: '0.0.0.0',
- port: 8081,
- proxy: {
- '/api': {
- target: process.env.VUE_APP_MOBILE_API_BASE_URL,
- // target: 'http://192.168.0.134:20250/api',
- ws: true,
- changOrigin: true,
- pathRewrite: {
- '^/api': '',
- },
- },
- },
- historyApiFallback: {
- rewrites: Object.keys(pages).map(name => {
- const re = new RegExp(`^/${name}/(?!.*\\.\\w+)`);
- const obj = {
- from: new RegExp(`^/${name}`),
- to(context) {
- return re.test(context.parsedUrl.path) ? `/${name}` : context.parsedUrl.path;
- },
- };
- return obj;
- }),
- },
- },
- };
|