1 | module.exports = class WebpackUtils {
|
2 | constructor(api) {
|
3 | this.api = api
|
4 | }
|
5 |
|
6 | get envs() {
|
7 | const envs = {}
|
8 |
|
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 | }
|