mirror of
https://github.com/wassname/optuna-dashboard.git
synced 2026-09-06 17:00:30 +08:00
65 lines
1.8 KiB
JavaScript
65 lines
1.8 KiB
JavaScript
const webpack = require('webpack');
|
|
|
|
const mode = process.env.NODE_ENV === 'production' ? 'production' : 'development';
|
|
const isDev = mode === 'development';
|
|
|
|
const typeScriptLoader = process.env.TYPESCRIPT_LOADER === "esbuild-loader" ? {
|
|
test: /\.tsx?$/,
|
|
exclude: [/node_modules/],
|
|
loader: 'esbuild-loader',
|
|
options: {
|
|
loader: 'tsx',
|
|
tsconfigRaw: require('./tsconfig.json')
|
|
}
|
|
} : {
|
|
test: /\.tsx?$/,
|
|
exclude: [/node_modules/],
|
|
loader: 'ts-loader',
|
|
options: {
|
|
configFile: __dirname + '/tsconfig.json',
|
|
transpileOnly: isDev,
|
|
happyPackMode: true
|
|
}
|
|
}
|
|
|
|
var config = {
|
|
mode,
|
|
entry: [__dirname + '/optuna_dashboard/ts/index.tsx'],
|
|
output: {
|
|
path: __dirname + '/optuna_dashboard/public/',
|
|
filename: 'bundle.js',
|
|
publicPath: '/public/'
|
|
},
|
|
module: {
|
|
rules: [{oneOf: [typeScriptLoader]}]
|
|
},
|
|
resolve: {
|
|
extensions: ['.ts', '.tsx', '.js']
|
|
},
|
|
plugins: [
|
|
new webpack.DefinePlugin({
|
|
'APP_BAR_TITLE': JSON.stringify(process.env.APP_BAR_TITLE || "Optuna Dashboard"),
|
|
'API_ENDPOINT': JSON.stringify(process.env.API_ENDPOINT),
|
|
'URL_PREFIX': JSON.stringify(process.env.URL_PREFIX || "/dashboard")
|
|
})
|
|
]
|
|
};
|
|
|
|
if (isDev) {
|
|
config.devtool = 'source-map';
|
|
config.cache = {
|
|
type: 'filesystem',
|
|
buildDependencies: {
|
|
config: [__filename],
|
|
}
|
|
}
|
|
console.log('= = = = = = = = = = = = = = = = = = =');
|
|
console.log('DEVELOPMENT BUILD');
|
|
console.log(process.env.TYPESCRIPT_LOADER === 'esbuild-loader' ? 'esbuild-loader' : 'ts-loader');
|
|
console.log('= = = = = = = = = = = = = = = = = = =');
|
|
} else {
|
|
const CompressionPlugin = require("compression-webpack-plugin");
|
|
config.plugins.push(new CompressionPlugin())
|
|
}
|
|
|
|
module.exports = config; |