pqina / vue-filepond

🔌 A handy FilePond adapter component for Vue
https://pqina.nl/filepond
MIT License
1.9k stars 128 forks source link

[Bug] Named export 'setOptions' not found. // Nuxt 3 #285

Open simonmaass opened 8 months ago

simonmaass commented 8 months ago

Is there an existing issue for this?

Have you updated Vue FilePond, FilePond, and all plugins?

Describe the bug

I am using nuxt 3 with the following import:

import VueFilePond, { setOptions } from 'vue-filepond'

When accessing the page client side everything works but when reloading the page with ssr i get the following error:

import { setOptions } from 'vue-filepond';
         ^^^^^^^^^^
SyntaxError: Named export 'setOptions' not found. The requested module 'vue-filepond' 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 'vue-filepond';
const { setOptions } = pkg;
image

Reproduction

When running "yarn dev" the error does not occur.. but when running yarn build and yarn start in SSR i get the error

Environment

- Device: Lenovo Thinkpad
- OS: Windows 10
- Browser: Version 118.0.5993.72 (Offizieller Build) (64-Bit)
- Vue version: 3.3.4
- Nuxt version: 3.7
simonmaass commented 8 months ago

I was able to get this working in nuxt SSR mode via this https://github.com/cyco130/vite-plugin-cjs-interop

soylomass commented 7 months ago

I was able to get this working in nuxt SSR mode via this https://github.com/cyco130/vite-plugin-cjs-interop

Thanks, this worked.

After installing it, you have to add this block to nuxt.config.ts:

vite: {
    plugins: [
      cjsInterop({
        // List of CJS dependencies that require interop
        dependencies: ["vue-filepond"],
      }),
    ],
  },
simonmaass commented 7 months ago

you are also able to get it to work without the plugin with this setting:

build: {
    transpile: ['vue-filepond']
  },