ffmpegwasm / ffmpeg.wasm

FFmpeg for browser, powered by WebAssembly
https://ffmpegwasm.netlify.app
MIT License
14.01k stars 816 forks source link

0.12: '@ffmpeg/ffmpeg' is a CommonJS module #521

Closed phenomen closed 1 year ago

phenomen commented 1 year ago

Describe the bug I'm migrating my 0.11 project to 0.12 but get this error when trying to import FFmpeg from @ffmpeg/ffmpeg

import { FFmpeg } from '@ffmpeg/ffmpeg';
         ^^^^^^
SyntaxError: Named export 'FFmpeg' not found. The requested module '@ffmpeg/ffmpeg' is a CommonJS module, which may not support all module.exports as named exports.
CommonJS modules can always be imported via the default export, for example using:

import pkg from '@ffmpeg/ffmpeg';
const { FFmpeg } = pkg;

I've also tried to import directly from esm directory

import { FFmpeg } from '@ffmpeg/ffmpeg/dist/esm/index.js';
import { fetchFile } from '@ffmpeg/util/dist/esm/index.js';

but got error

Error [ERR_PACKAGE_PATH_NOT_EXPORTED]: Package subpath './dist/esm/index.js' is not defined by "exports" in D:\Github\vttc\node_modules\@ffmpeg\ffmpeg\package.json imported from D:\Github\vttc\bin\convert.js
    at new NodeError (node:internal/errors:405:5)
    at exportsNotFound (node:internal/modules/esm/resolve:359:10)
    at packageExportsResolve (node:internal/modules/esm/resolve:695:9)
    at packageResolve (node:internal/modules/esm/resolve:870:14)
    at moduleResolve (node:internal/modules/esm/resolve:936:20)
    at defaultResolve (node:internal/modules/esm/resolve:1129:11)
    at nextResolve (node:internal/modules/esm/loader:163:28)
    at ESMLoader.resolve (node:internal/modules/esm/loader:835:30)
    at ESMLoader.getModuleJob (node:internal/modules/esm/loader:424:18)
    at ModuleWrap.<anonymous> (node:internal/modules/esm/module_job:77:40) {
  code: 'ERR_PACKAGE_PATH_NOT_EXPORTED'
}

package.json:

        // ...
    "type": "module",
    "dependencies": {
        "@clack/prompts": "^0.6.3",
        "@ffmpeg/ffmpeg": "^0.12.1",
        "@ffmpeg/util": "^0.12.0",
        "sharp": "^0.32.4"
    }
jeromewu commented 1 year ago

Can you share the link to your repository?

jeromewu commented 1 year ago

BTW, as ffmpeg.wasm only supports browser starting from 0.12.0. I might not be able to help if the use case is nodejs.

phenomen commented 1 year ago

Yeah, that's Node project... I see it's deprecated now. I will check some alternative then, thanks.