@cisdi/pangu
Version:
develop tool for ui-engine project
62 lines (54 loc) • 1.54 kB
JavaScript
const { merge } = require('webpack-merge')
const baseConfig = require('./base')
const project = require('./project')
const HtmlWebpackPlugin = require('html-webpack-plugin')
const { tplPath } = require('../../utils/paths')
const app = require('../../utils/app')
const { isReact, isVue2 } = require('../../utils/framework')
const PRODUCT = process.env.NODE_ENV === 'production'
const frameworkConfig = isReact
? require('./react')(baseConfig)
: isVue2
? require('./vue2')(baseConfig)
: require('./vue')(baseConfig)
const config =
typeof project === 'function'
? project(frameworkConfig)
: merge(frameworkConfig, project)
if (config.entry) {
const entry = config.entry
if (typeof entry === 'object' && Object.keys(entry).length > 1) {
const entries = Object.keys(entry)
entries.forEach((name) => {
config.plugins.push(
new HtmlWebpackPlugin({
filename: `${name}.html`,
template: tplPath,
title: app.appName || '',
chunks: [name],
hash: false,
inject: true,
minify: {
collapseWhitespace: PRODUCT,
minifyJS: PRODUCT,
},
})
)
})
} else {
config.plugins.push(
new HtmlWebpackPlugin({
filename: 'index.html',
template: tplPath,
title: app.appName || '',
hash: false,
inject: true,
minify: {
collapseWhitespace: PRODUCT,
minifyJS: PRODUCT,
},
})
)
}
}
module.exports = config