Skip to content

cheerio dependency breaks browserify compatibility since [email protected] #536

@manosKas

Description

@manosKas

Summary

Starting with [email protected], the package is no longer browserify-compatible due to changes in the cheerio dependency. Up to [email protected], everything works fine in the browser when bundling with Browserify.

Details

  • [email protected] uses [email protected], which is CommonJS and compatible with Browserify.
  • From [email protected] onward, the package depends on [email protected], which:
    • Uses ESM
    • Requires Node built-ins like node:stream
    • Fails in Browserify with errors like:
      Error: Can't walk dependency graph: ENOENT: no such file or directory, lstat '.../node:stream'
      

Use Case

I'm using Juice to inline CSS for rendering HTML emails in a browser-based email client. This worked great with [email protected], but updating breaks bundling completely.

Suggested Actions

  • Document this breaking change more explicitly in the README and changelog.
  • Consider publishing a legacy browser-compatible build or offering an ESM/browser build via juice/client.

Temporary Workaround

Downgrading to [email protected] restores Browserify compatibility.


Let me know if you're open to a PR, or if there's a preferred way to browserify recent versions.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions