123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 |
- const path = require('path')
- const fs = require('fs')
- // Generate pages object
- const pages = {}
- function getEntryFile (entryPath) {
- let files = fs.readdirSync(entryPath)
- return files
- }
- const chromeName = getEntryFile(path.resolve(`src/entry`))
- const iframeName = getEntryFile(path.resolve(`src/iframe`))
- function getFileExtension (filename) {
- return /[.]/.exec(filename) ? /[^.]+$/.exec(filename)[0] : undefined
- }
- chromeName.forEach((name) => {
- const fileExtension = getFileExtension(name)
- const fileName = name.replace('.' + fileExtension, '')
- pages[fileName] = {
- entry: `src/entry/${name}`,
- template: 'public/index.html',
- filename: `${fileName}.html`
- }
- })
- iframeName.forEach((name) => {
- const fileExtension = getFileExtension(name)
- const fileName = name.replace('.' + fileExtension, '')
- pages[fileName] = {
- entry: `src/iframe/${name}`,
- template: 'public/index.html',
- filename: `iframe/${fileName}.html`
- }
- })
- const isDevMode = process.env.NODE_ENV === 'development'
- module.exports = {
- pages,
- filenameHashing: false,
- chainWebpack: (config) => {
- config.plugin('copy').use(require('copy-webpack-plugin'), [
- {
- patterns: [
- {
- from: path.resolve(`src/manifest.${process.env.NODE_ENV}.json`),
- to: `${path.resolve('dist')}/manifest.json`
- }
- ]
- }
- ])
- },
- configureWebpack: {
- output: {
- filename: `js/[name].js`,
- chunkFilename: `[name].js`
- },
- devtool: isDevMode ? 'inline-source-map' : false
- }
- }
|