UNPKG

1.53 kBJavaScriptView Raw
1module.exports = class WebpackUtils {
2 constructor(api) {
3 this.api = api
4 }
5
6 get envs() {
7 const envs = {}
8 // Collect variables starting with `POI_APP_` from `process.env`
9 for (const name of Object.keys(process.env)) {
10 if (name.startsWith('POI_APP_')) {
11 envs[name] = process.env[name]
12 }
13 }
14
15 Object.assign(envs, this.api.config.envs, {
16 NODE_ENV: this.api.mode === 'production' ? 'production' : 'development'
17 })
18
19 return envs
20 }
21
22 get fileNames() {
23 let res
24
25 if (this.api.config.output.format === 'iife') {
26 const useHash = this.api.mode === 'production'
27
28 res = {
29 js: useHash
30 ? 'assets/js/[name].[chunkhash:8].js'
31 : 'assets/js/[name].js',
32 css: useHash
33 ? 'assets/css/[name].[chunkhash:8].css'
34 : 'assets/css/[name].css',
35 chunk: useHash
36 ? 'assets/js/[name].[chunkhash:8].chunk.js'
37 : 'assets/js/[name].chunk.js',
38 font: useHash
39 ? 'assets/fonts/[path][name].[hash:8].[ext]'
40 : 'assets/fonts/[path][name].[ext]',
41 image: useHash
42 ? 'assets/images/[path][name].[hash:8].[ext]'
43 : 'assets/images/[path][name].[ext]'
44 }
45 } else {
46 res = {
47 js: '[name].js',
48 css: '[name].css',
49 chunk: '[name].chunk.js',
50 font: '[path][name].[ext]',
51 image: '[path][name].[ext]'
52 }
53 }
54
55 const { fileNames } = this.api.config.output || {}
56 return Object.assign({}, res, fileNames)
57 }
58}