41 lines
1.1 KiB
JavaScript
41 lines
1.1 KiB
JavaScript
/**
|
|||
|
|
* esbuild config for Docker release bundle (apps/api/release/app.js).
|
||
|
|
* Used by: node scripts/bundle-release.cjs
|
||
|
|
*/
|
||
|
|
const path = require('path');
|
||
|
|
const { createRequire } = require('module');
|
||
|
|
|
||
|
|
const requireFromApi = createRequire(path.join(__dirname, 'package.json'));
|
||
|
|
|
||
|
|
module.exports = {
|
||
|
|
entryPoints: [path.join(__dirname, 'dist/src/main.js')],
|
||
|
|
outfile: path.join(__dirname, 'release/app.js'),
|
||
|
|
bundle: true,
|
||
|
|
platform: 'node',
|
||
|
|
target: 'node20',
|
||
|
|
format: 'cjs',
|
||
|
|
// Prisma ships native binaries — keep out of the JS bundle and vendor into release/
|
||
|
|
// Nest optional peers are required dynamically and are not used by this API.
|
||
|
|
external: [
|
||
|
|
'@prisma/client',
|
||
|
|
'.prisma/client',
|
||
|
|
'@nestjs/microservices',
|
||
|
|
'@nestjs/microservices/*',
|
||
|
|
'@nestjs/websockets',
|
||
|
|
'@nestjs/websockets/*',
|
||
|
|
'msgpackr-extract',
|
||
|
|
],
|
||
|
|
plugins: [
|
||
|
|
{
|
||
|
|
name: 'class-transformer-storage',
|
||
|
|
setup(build) {
|
||
|
|
build.onResolve({ filter: /^class-transformer\/storage$/ }, () => ({
|
||
|
|
path: requireFromApi.resolve('class-transformer/cjs/storage.js'),
|
||
|
|
}));
|
||
|
|
},
|
||
|
|
},
|
||
|
|
],
|
||
|
|
sourcemap: false,
|
||
|
|
logLevel: 'info',
|
||
|
|
};
|