Cannot use debug with Rollup
See original GitHub issueThere’re a troubles both using debug
directly (via import debug from 'debug'
) and as a dependency to another package, with Rollup bundler.
import debug from 'debug'
:
Non-existent export ‘default’ is imported from node_modules/debug/src/browser.js
I believe this is because of that dynamic stuff.
import SocketIo from 'socket.io-client'
which hasdebug
as a dependency:
‘default’ is not exported by ‘node_modules/socket.io-client/node_modules/debug/src/browser.js’
As far as I understood, the main idea behind browser.js
is to import kinda «base» debug object and upgrade it with browser-specific methods’ implementations. I believe this can be rewritten in more static and bundler-friendly way. Like requiring base, propagate it with methods and then export as a default in different statements which would simplify the analysis by Rollup and other-like.
I’m not an active debug
user, but debug
is very popular tool, so many of my packages’ of choice using it as a dependency. So I stumble upon it when bundling, from time to time. Leveraging any workarounds is diffcult, since I do not have precision control over dependencies of my dependencies.
Issue Analytics
- State:
- Created 6 years ago
- Comments:20 (6 by maintainers)
Top GitHub Comments
@StreetStrider that’s a fair assessment of what’s happening. But it sounds like this is probably a fixable bug in rollup-plugin-commonjs — I suspect it just doesn’t know what to make of this code:
I’ve opened a related issue over there: https://github.com/rollup/rollup-plugin-commonjs/issues/204
After separating the node and browser build, the problem no longer exists.