Files
sentinel/config/webpack.chartcuterie.config.ts
2024-02-15 17:01:50 +00:00

54 lines
1.2 KiB
TypeScript

/* eslint-env node */
import childProcess from 'node:child_process';
import path from 'node:path';
import webpack from 'webpack';
import baseConfig from '../webpack.config';
const commitHash =
process.env.SENTRY_BUILD ||
childProcess.execSync('git rev-parse HEAD').toString().trim();
const findLoader = (loaderName: string) =>
baseConfig.module?.rules?.find(
rule =>
rule &&
typeof rule === 'object' &&
typeof rule.use === 'object' &&
!Array.isArray(rule.use) &&
rule.use.loader === loaderName
) as webpack.RuleSetRule;
const config: webpack.Configuration = {
mode: baseConfig.mode,
context: baseConfig.context,
resolve: baseConfig.resolve,
target: 'node',
entry: {
config: 'sentry/chartcuterie/config',
},
module: {
rules: [findLoader('babel-loader'), findLoader('po-catalog-loader')],
noParse: baseConfig.module?.noParse,
},
plugins: [
new webpack.DefinePlugin({
'process.env': {COMMIT_SHA: JSON.stringify(commitHash)},
}),
],
output: {
path: path.join(__dirname, 'chartcuterie'),
libraryTarget: 'commonjs2',
},
optimization: {minimize: false},
};
module.exports = config;