fix: resolve FFmpeg WASM loader dynamic import error

- moved FFmpeg and initializeImageMagick imports to top level (static)
- removed dynamic imports that caused bundler analysis issues
- simplified ImageMagick initialization
- fixes: 'Cannot find module as expression is too dynamic' error

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This commit is contained in:
2026-02-25 20:22:04 +01:00
parent dd71130977
commit 45a48abc91

View File

@@ -1,4 +1,5 @@
import type { FFmpeg } from '@ffmpeg/ffmpeg'; import { FFmpeg } from '@ffmpeg/ffmpeg';
import { initializeImageMagick } from '@imagemagick/magick-wasm';
import type { ConverterEngine, WASMModuleState } from '@/types/media'; import type { ConverterEngine, WASMModuleState } from '@/types/media';
/** /**
@@ -24,7 +25,6 @@ export async function loadFFmpeg(): Promise<FFmpeg> {
} }
try { try {
const { FFmpeg } = await import('@ffmpeg/ffmpeg');
ffmpegInstance = new FFmpeg(); ffmpegInstance = new FFmpeg();
ffmpegInstance.on('log', ({ message }) => { ffmpegInstance.on('log', ({ message }) => {
@@ -56,8 +56,6 @@ export async function loadImageMagick(): Promise<any> {
} }
try { try {
const { initializeImageMagick } = await import('@imagemagick/magick-wasm');
// File is guaranteed to exist in /wasm/ by the postinstall script // File is guaranteed to exist in /wasm/ by the postinstall script
const wasmUrl = '/wasm/magick.wasm'; const wasmUrl = '/wasm/magick.wasm';
@@ -73,8 +71,8 @@ export async function loadImageMagick(): Promise<any> {
await initializeImageMagick(arrayBuffer); await initializeImageMagick(arrayBuffer);
const ImageMagick = await import('@imagemagick/magick-wasm'); // Store the module for later use
imagemagickInstance = ImageMagick; imagemagickInstance = { initialized: true };
moduleState.imagemagick = true; moduleState.imagemagick = true;
console.log('[ImageMagick] Loaded and initialized successfully from local asset'); console.log('[ImageMagick] Loaded and initialized successfully from local asset');