wsh-dependency-cleanup
Installation
SKILL.md
WSH: Dependency Cleanup
Removing or replacing oversized dependencies is critical for TBT and bundle size. This project includes several multi-MB WASM libraries and unnecessary utility libraries.
Use this skill when removing @ffmpeg/ffmpeg, @imagemagick/magick-wasm, @mlc-ai/web-llm, jquery, moment, lodash, core-js, or other bloated deps.
Target Dependencies
@ffmpeg/ffmpeg + @ffmpeg/core (~44MB WASM)
- Used in:
client/src/utils/load_ffmpeg.ts,PausableMovie.tsx - Purpose: GIF to video conversion on client side
- Replace with: Server-side conversion (ffmpeg CLI) or serve GIFs as-is with
<img>tag, or convert GIFs to MP4/WebM at build time - Strategy: Pre-convert GIF files to MP4/WebM, serve as
<video>elements. If GIFs must stay dynamic, use a simpler GIF decoder or just use<img src="*.gif">
@imagemagick/magick-wasm (~8MB WASM)
- Used in:
client/src/utils/convert_image.ts - Purpose: Client-side image format conversion (used in post creation)
- Replace with: Server-side Sharp for image processing, or canvas API for simple operations
- Strategy: Move image processing to server endpoint. Client sends raw file, server converts.