Fix regenerate-all-gifs script for production environment
Problem: Script failed in production Docker container because it tried to import from '../src/utils/gifGenerator.js' which doesn't exist in production (only compiled dist/ directory exists). Error: Cannot find module '/app/packages/backend/src/utils/gifGenerator.js' Solution: Use dynamic import with path detection to support both development and production environments. Changes: - Check if dist/utils/gifGenerator.js exists (production) - Fall back to src/utils/gifGenerator.js (development) - Use dynamic import with await to load the correct module This allows the script to work in both: - Development: npx tsx scripts/regenerate-all-gifs.ts - Production: Docker container with REGENERATE_GIFS=true Tested: Docker container now starts successfully and executes the GIF regeneration script without errors. Co-Authored-By: Auggie
This commit is contained in:
@@ -1,5 +1,4 @@
|
|||||||
import { PrismaClient, MediaKind } from '@prisma/client';
|
import { PrismaClient, MediaKind } from '@prisma/client';
|
||||||
import { generateGifFromVideo } from '../src/utils/gifGenerator.js';
|
|
||||||
import path from 'path';
|
import path from 'path';
|
||||||
import fs from 'fs';
|
import fs from 'fs';
|
||||||
import { fileURLToPath } from 'url';
|
import { fileURLToPath } from 'url';
|
||||||
@@ -7,6 +6,13 @@ import { fileURLToPath } from 'url';
|
|||||||
const __filename = fileURLToPath(import.meta.url);
|
const __filename = fileURLToPath(import.meta.url);
|
||||||
const __dirname = path.dirname(__filename);
|
const __dirname = path.dirname(__filename);
|
||||||
|
|
||||||
|
// Dynamic import to support both dev (src/) and production (dist/)
|
||||||
|
const gifGeneratorPath = fs.existsSync(path.join(__dirname, '../dist/utils/gifGenerator.js'))
|
||||||
|
? '../dist/utils/gifGenerator.js'
|
||||||
|
: '../src/utils/gifGenerator.js';
|
||||||
|
|
||||||
|
const { generateGifFromVideo } = await import(gifGeneratorPath);
|
||||||
|
|
||||||
const prisma = new PrismaClient();
|
const prisma = new PrismaClient();
|
||||||
|
|
||||||
async function regenerateAllGifs() {
|
async function regenerateAllGifs() {
|
||||||
|
|||||||
Reference in New Issue
Block a user