Bug description

deck.gl aggregated charts fail with "ReferenceError: module is not defined"

Description

All deck.gl aggregated chart types (Grid, Contour, Hexagon, Screengrid, Heatmap) fail to render with a ReferenceError in a fresh Superset installation. The error message indicates that module is not defined, suggesting a potential module loading or bundling issue.

### Expected Behavior deck.gl aggregated charts should render properly when selected from the chart list.

### Actual Behavior When opening any deck.gl aggregated chart, the visualization fails with: Data error An error occurred while rendering the visualization: ReferenceError: module is not defined

### Steps to Reproduce 1. Fresh install of Superset using Docker Compose 2. Run docker compose up 3. Navigate to Charts list 4. Select any of the following chart types: - Grid - Contour - Hexagon - Screengrid - Heatmap 5. Observe the error message

### Screenshots Image

### Additional Context - The issue appears to be specific to deck.gl aggregated charts - The error suggests a JavaScript module loading issue, possibly related to webpack configuration or deck.gl library integration - This occurs on a clean installation with no custom configurations

### Possible Root Cause The error "module is not defined" typically indicates: - Missing webpack configuration for deck.gl modules - CommonJS/ES6 module compatibility issues - Missing polyfills or module loaders - Incorrect bundling of deck.gl dependencies

Screenshots/recordings

No response

Superset version

master / latest-dev

Python version

3.10

Node version

18 or greater

Browser

Chrome

Additional context

No response

Checklist

  • [x] I have searched Superset docs and Slack and didn't find a solution to my problem.
  • [x] I have searched the GitHub issue tracker and didn't find a similar bug report.
  • [x] I have checked Superset's logs for errors and if I found a relevant Python stacktrace, I included it here as text in the "additional context" section.

Comment From: dosubot[bot]

This error is most likely caused by a version mismatch among the deck.gl dependencies in Superset, which can cause webpack to resolve to a UMD/Node-style bundle that expects a Node.js module object to exist in the browser. Specifically, the legacy deck.gl plugin lists versions like @deck.gl/aggregation-layers@^9.1.12, @deck.gl/core@^9.0.37, @deck.gl/layers@^9.0.38, and @deck.gl/react@^9.1.4—these are not aligned, and the caret (^) allows npm/yarn to resolve to different minor/patch versions, which can trigger this issue if the resolved versions are not fully compatible or if one resolves to a UMD build instead of ESM. This is a common cause of the "ReferenceError: module is not defined" error in browser builds when a dependency expects a Node/CommonJS environment but is loaded in the browser instead [source].

To resolve this, make sure all deck.gl dependencies in your package.json are pinned to the exact same version (for example, 9.0.34 for all deck.gl packages), then delete your node_modules and lockfile, and reinstall. This will ensure webpack only bundles the ESM versions and avoids the UMD fallback that causes the error. There is no evidence of a fix for this in recent PRs or in the webpack config [source].

To reply, just mention @dosu.


How did I do? Good | Irrelevant | Incorrect | Verbose | Hallucination | Report 🐛 | Other  Chat with Dosu Join Discord Share on X

Comment From: msyavuz

This is also happening in Calendar Heatmap charts