Compare commits

..

No commits in common. "8ffc999798899caadf5303ac29159929c56564df" and "c5c30cf8c30bb820d1e497dd35cf65b05bb09c6e" have entirely different histories.

4 changed files with 21 additions and 11 deletions

View file

@ -4,12 +4,12 @@ FROM node:18-alpine
# Set working directory # Set working directory
WORKDIR /app WORKDIR /app
# Copy package files and install dependencies # Copy package files, config script
COPY package.json package-lock.json ./ COPY package.json package-lock.json esbuild.config.js ./
RUN npm ci --only=production # Copy application source before build so esbuild can locate entry files
# Copy application source
COPY . . COPY . .
# Install all dependencies, create dist folder, build with esbuild, then remove devDeps
RUN npm ci && mkdir -p dist && npm run build && npm prune --production
# Expose the application port # Expose the application port
EXPOSE 3000 EXPOSE 3000

15
esbuild.config.js Normal file
View file

@ -0,0 +1,15 @@
import { build } from 'esbuild';
build({
entryPoints: ['index.js'],
bundle: true,
platform: 'node',
target: 'node18',
outfile: 'dist/index.js',
minify: true,
legalComments: 'none',
drop: ['console', 'debugger'],
}).catch((e) => {
console.error('esbuild failed:', e);
process.exit(1);
});

View file

@ -58,11 +58,6 @@ if (process.argv.includes('-d')) {
process.exit(0); process.exit(0);
} }
// Disable console.log in production to suppress output in daemon mode
if (process.env.NODE_ENV === 'production') {
console.log = () => {};
}
const pluginRegistry = []; const pluginRegistry = [];
export function registerPlugin(pluginName, handler) { export function registerPlugin(pluginName, handler) {
pluginRegistry.push({ name: pluginName, handler }); pluginRegistry.push({ name: pluginName, handler });

View file

@ -5,7 +5,7 @@
"scripts": { "scripts": {
"start": "node index.js", "start": "node index.js",
"dev": "nodemon index.js", "dev": "nodemon index.js",
"daemon": "pm2 start index.js --name checkpoint", "daemon": "pm2 start dist/index.js --name checkpoint",
"stop": "pm2 stop checkpoint", "stop": "pm2 stop checkpoint",
"restart": "pm2 restart checkpoint", "restart": "pm2 restart checkpoint",
"logs": "pm2 logs checkpoint", "logs": "pm2 logs checkpoint",