3
const MonacoWebpackPlugin = require('monaco-editor-webpack-plugin');
4
const CopyWebpackPlugin = require('copy-webpack-plugin');
5
const HtmlWebpackPlugin = require('html-webpack-plugin');
6
const webpack = require('webpack');
8
const isProd = process.env.NODE_ENV === 'production';
10
console.log(`Bundling in ${isProd ? 'production' : 'development'}...`);
13
target: process.env.ARGOCD_API_URL || 'http://localhost:8080',
18
entry: './src/app/index.tsx',
20
filename: '[name].[contenthash].js',
21
chunkFilename: '[name].[contenthash].chunk.js',
22
path: __dirname + '/../../dist/app'
26
extensions: ['.ts', '.tsx', '.js', '.json'],
27
alias: { react: require.resolve('react') },
28
fallback: { fs: false }
31
module: new RegExp('/node_modules/argo-ui/.*')
37
loader: 'esbuild-loader',
41
tsconfigRaw: require('./tsconfig.json')
46
exclude: [/node_modules\/react-paginate/, /node_modules\/monaco-editor/],
48
use: ['esbuild-loader'],
52
use: ['style-loader', 'raw-loader', 'sass-loader']
56
use: ['style-loader', 'raw-loader']
61
new webpack.DefinePlugin({
62
'process.env.NODE_ENV': JSON.stringify(process.env.NODE_ENV || 'development'),
63
'process.env.NODE_ONLINE_ENV': JSON.stringify(process.env.NODE_ONLINE_ENV || 'offline'),
64
'process.env.HOST_ARCH': JSON.stringify(process.env.HOST_ARCH || 'amd64'),
65
'process.platform': JSON.stringify('browser'),
66
'SYSTEM_INFO': JSON.stringify({
67
version: process.env.ARGO_VERSION || 'latest'
70
new HtmlWebpackPlugin({ template: 'src/app/index.html' }),
71
new CopyWebpackPlugin({
77
from: 'node_modules/argo-ui/src/assets',
81
from: 'node_modules/@fortawesome/fontawesome-free/webfonts',
85
from: 'node_modules/redoc/bundles/redoc.standalone.js',
86
to: 'assets/scripts/redoc.standalone.js'
89
from: 'node_modules/monaco-editor/min/vs/base/browser/ui/codicons/codicon',
94
new MonacoWebpackPlugin({
101
historyApiFallback: {
105
host: process.env.ARGOCD_E2E_YARN_HOST || 'localhost',
107
'/extensions': proxyConf,
111
target: process.env.ARGOCD_API_URL || 'ws://localhost:8080',
114
'/swagger-ui': proxyConf,
115
'/swagger.json': proxyConf
121
config.devtool = 'eval-source-map';
124
module.exports = config;