78 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			78 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| 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`))
 | |
| 
 | |
| 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`
 | |
|   }
 | |
| })
 | |
| 
 | |
| 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`
 | |
|           },
 | |
|           {
 | |
|             from: path.resolve(`public/`),
 | |
|             to: `${path.resolve('dist')}/`
 | |
|           }
 | |
|         ]
 | |
|       }
 | |
|     ])
 | |
|   },
 | |
|   devServer: {
 | |
|     port: 8080,
 | |
|     open: true,
 | |
|     overlay: {
 | |
|       warnings: false,
 | |
|       errors: true
 | |
|     },
 | |
|     proxy: {
 | |
|       '/api': {
 | |
|         target: 'http://pdd.jjcp52.com',
 | |
|         changeOrigin: true,
 | |
|         ws: true,
 | |
|         pathRewrite: {
 | |
|           '^/api': '/'
 | |
|         }
 | |
|       }
 | |
|     }
 | |
|   },
 | |
|   lintOnSave: false,
 | |
|   configureWebpack: {
 | |
|     output: {
 | |
|       filename: `[name].js`,
 | |
|       chunkFilename: `[name].js`
 | |
|     },
 | |
|     devtool: isDevMode ? 'inline-source-map' : false
 | |
|   },
 | |
|   css: {
 | |
|     extract: false // Make sure the css is the same
 | |
|   }
 | |
| }
 |