eligrey / FileSaver.js

An HTML5 saveAs() FileSaver implementation
https://eligrey.com/blog/saving-generated-files-on-the-client-side/
Other
21.57k stars 4.38k forks source link

Version 2.0.0 cannot be used with rollup #517

Open davideicardi opened 5 years ago

davideicardi commented 5 years ago

I'm trying to use file-saver version 2.0.0 with rollup, but I get the following error:

(!) Missing exports
https://rollupjs.org/guide/en#error-name-is-not-exported-by-module-
src/ExportCsv.js
saveAs is not exported by node_modules/file-saver/dist/FileSaver.min.js

I'm importing it using:

import * as FileSaver from 'file-saver';

tried also:

import { saveAs } from 'file-saver';

Version 1.3.8 works correctly. I don't understand exactly why.

Any idea?

remailednet commented 5 years ago

I don't know the cause, but now rollup.js will give you a hint. A solution that worked for me was: commonjs({ namedExports: { 'file-saver': [ 'saveAs' ] } })

bitflower commented 4 years ago

I have the same issue in a StencilJS/ Rollup project.

@davideicardi thanks for the 1.3.8 hint!

gtranter commented 2 years ago

I'm also experiencing this problem in a StencilJS v2 project which has deprecated support for the commonjs workaround by @remailednet.

Disappointing that this hasn't been addressed in almost 2-1/2 years. We will most likely have to roll back to v1.3.8.

vskorohod commented 8 months ago

Adding @rollup/plugin-commonjs plugin to the rollup config should solve the problem.

https://rollupjs.org/troubleshooting/#error-name-is-not-exported-by-module