mirror of https://github.com/harness/drone.git
116 lines
3.1 KiB
JavaScript
116 lines
3.1 KiB
JavaScript
/*
|
|
* Copyright 2023 Harness, Inc.
|
|
*
|
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
* you may not use this file except in compliance with the License.
|
|
* You may obtain a copy of the License at
|
|
*
|
|
* http://www.apache.org/licenses/LICENSE-2.0
|
|
*
|
|
* Unless required by applicable law or agreed to in writing, software
|
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
* See the License for the specific language governing permissions and
|
|
* limitations under the License.
|
|
*/
|
|
|
|
const { merge } = require('webpack-merge')
|
|
const commonConfig = require('./webpack.common')
|
|
const CONTEXT = process.cwd()
|
|
const path = require('path')
|
|
|
|
const prodConfig = {
|
|
mode: 'production',
|
|
entry: path.resolve(CONTEXT, '/src/index.tsx'),
|
|
devtool: process.env.ENABLE_SOURCE_MAP ? 'source-map' : false,
|
|
optimization: {
|
|
splitChunks: {
|
|
minSize: 20_480,
|
|
automaticNameDelimiter: '-',
|
|
|
|
cacheGroups: {
|
|
common: {
|
|
test: /[\\/]node_modules[\\/]/,
|
|
priority: -5,
|
|
reuseExistingChunk: true,
|
|
chunks: 'initial',
|
|
name: 'vendor-common',
|
|
minSize: 20_480,
|
|
maxSize: 1_024_000
|
|
},
|
|
|
|
default: {
|
|
minChunks: 2,
|
|
priority: -10,
|
|
reuseExistingChunk: true,
|
|
minSize: 20_480,
|
|
maxSize: 1_024_000
|
|
},
|
|
|
|
// Opting out of defaultVendors, so rest of the node modules will be part of default cacheGroup
|
|
defaultVendors: false,
|
|
|
|
react: {
|
|
test: /[\\/]node_modules[\\/](react)[\\/]/,
|
|
name: 'vendor-react',
|
|
chunks: 'all',
|
|
priority: 50,
|
|
minSize: 0
|
|
},
|
|
|
|
reactdom: {
|
|
test: /[\\/]node_modules[\\/](react-dom)[\\/]/,
|
|
name: 'vendor-react-dom',
|
|
chunks: 'all',
|
|
priority: 40
|
|
},
|
|
|
|
reactrouterdom: {
|
|
test: /[\\/]node_modules[\\/](react-router-dom)[\\/]/,
|
|
name: 'vendor-react-router-dom',
|
|
chunks: 'all',
|
|
priority: 30,
|
|
minSize: 0
|
|
},
|
|
|
|
blueprintjs: {
|
|
test: /[\\/]node_modules[\\/](@blueprintjs)[\\/]/,
|
|
name: 'vendor-blueprintjs',
|
|
chunks: 'all',
|
|
priority: 20
|
|
},
|
|
|
|
restfulreact: {
|
|
test: /[\\/]node_modules[\\/](restful-react)[\\/]/,
|
|
name: 'vendor-restful-react',
|
|
chunks: 'all',
|
|
priority: 10
|
|
},
|
|
|
|
designsystem: {
|
|
test: /[\\/]node_modules[\\/](@harnessio\/design-system)[\\/]/,
|
|
name: 'vendor-harnessio-design-system',
|
|
chunks: 'all',
|
|
priority: 5
|
|
},
|
|
|
|
icons: {
|
|
test: /[\\/]node_modules[\\/](@harnessio\/icons)[\\/]/,
|
|
name: 'vendor-harnessio-icons',
|
|
chunks: 'all',
|
|
priority: 1
|
|
},
|
|
|
|
uicore: {
|
|
test: /[\\/]node_modules[\\/](@harnessio\/uicore)[\\/]/,
|
|
name: 'vendor-harnessio-uicore',
|
|
chunks: 'all',
|
|
priority: 1
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
module.exports = merge(commonConfig, prodConfig)
|