npm install also downloads the pinned FFmpeg and FFprobe build into vendor/ffmpeg and checks its SHA-256; it is built from source in VideoCull-FFmpeg, which also publishes its complete corresponding source.
If npm --version is below 11.19.0, run npm install --global npm@11.19.0 before npm ci.
Common commands
Notes
npm run test:ciis the normal local verification path.- Backend files under
electron/stay plain JavaScript with no build step. A file opts into type checking with// @ts-checkand JSDoc types imported fromsrc/types.ts;tsconfig.electron.jsonchecks them. npm ciinstalls the Electron runtime. Dependency install scripts are disabled for better-sqlite3 to avoid npm’s implicit native rebuild; its bundled binary is used instead.npm run test:cache-nativeruns the cache tests inside Electron. better-sqlite3 ships prebuilt Node-API binaries, so no native rebuild or C++ build tools are needed.- Development Electron sessions use a separate
userDatafolder so local settings and cache do not mix with the packaged app. - E2E runs use their own temporary
userDatadirectory and do not touch your normal app data. - The Store APPX disables filesystem write virtualization so it can share the normal VideoCull profile and user-selected AppData cache locations with the direct edition. This requires Microsoft’s restricted
unvirtualizedResourcescapability.