mirror of
https://github.com/hanzoai/sentinel.git
synced 2026-09-29 22:34:33 +00:00
54 lines
1.2 KiB
TypeScript
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;
|