Skip to content

[Bug] package.json should contain exports for usage in NodeJS #888

Description

@keller-mark

Describe the bug

Hi, I am using NebulaGL in my web application. I am running into issues when importing NebulaGL (directly or indirectly) in unit testing frameworks which execute code using NodeJS (vitest in particular) because the package.json for nebula.gl (as well as for @nebula.gl/*):

  • both does not contain "type": "module" and does not specify exports

This is also clear when checking nebula.gl in Publint: https://publint.dev/nebula.gl@1.1.0-alpha.5

Note: This issue is also related to this one in DeckGL visgl/deck.gl#8186

Actual Result

 FAIL  src/nebulagl.test.js [ src/nebulagl.test.js ]
Error: require() of ES Module /home/projects/vitejs-vite-csquxp/node_modules/@mapbox/tiny-sdf/index.js from /home/projects/vitejs-vite-csquxp/node_modules/@deck.gl/layers/dist/es5/text-layer/font-atlas-manager.js not supported.
Instead change the require of index.js in /home/projects/vitejs-vite-csquxp/node_modules/@deck.gl/layers/dist/es5/text-layer/font-atlas-manager.js to a dynamic import() which is available in all CommonJS modules.
 ❯ makeNodeErrorWithCode/< ../../../blitz.7a1fe16d.js:36:4174
 ❯ Module."] ../../../blitz.7a1fe16d.js:55:15296
 ❯ Module.prototype.load ../../../blitz.7a1fe16d.js:55:13469
 ❯ Module._load ../../../blitz.7a1fe16d.js:55:10541
 ❯ Module.prototype.require ../../../blitz.7a1fe16d.js:55:13787
 ❯ i ../../../blitz.7a1fe16d.js:98:2198
 ❯ _0x5b8ff6 ../../../blitz.7a1fe16d.js:355:176557
 ❯ function ../../../blitz.7a1fe16d.js:355:177359
 ❯ Module.prototype._compile ../../../blitz.7a1fe16d.js:55:14883
 ❯ Module."] ../../../blitz.7a1fe16d.js:55:15564
 ❯ Module.prototype.load ../../../blitz.7a1fe16d.js:55:13469
 ❯ Module._load ../../../blitz.7a1fe16d.js:55:10541
 ❯ Module.prototype.require ../../../blitz.7a1fe16d.js:55:13787
 ❯ i ../../../blitz.7a1fe16d.js:98:2198
 ❯ _0x5b8ff6 ../../../blitz.7a1fe16d.js:355:176557
 ❯ function ../../../blitz.7a1fe16d.js:355:177359
 ❯ Module.prototype._compile ../../../blitz.7a1fe16d.js:55:14883
 ❯ Module."] ../../../blitz.7a1fe16d.js:55:15564
 ❯ Module.prototype.load ../../../blitz.7a1fe16d.js:55:13469
 ❯ Module._load ../../../blitz.7a1fe16d.js:55:10541
 ❯ Module.prototype.require ../../../blitz.7a1fe16d.js:55:13787
 ❯ i ../../../blitz.7a1fe16d.js:98:2198
 ❯ _0x5b8ff6 ../../../blitz.7a1fe16d.js:355:176557
 ❯ function ../../../blitz.7a1fe16d.js:355:177359
 ❯ Module.prototype._compile ../../../blitz.7a1fe16d.js:55:14883
 ❯ Module."] ../../../blitz.7a1fe16d.js:55:15564
 ❯ Module.prototype.load ../../../blitz.7a1fe16d.js:55:13469
 ❯ Module._load ../../../blitz.7a1fe16d.js:55:10541
 ❯ Module.prototype.require ../../../blitz.7a1fe16d.js:55:13787
 ❯ i ../../../blitz.7a1fe16d.js:98:2198
 ❯ _0x5b8ff6 ../../../blitz.7a1fe16d.js:355:176557
 ❯ function ../../../blitz.7a1fe16d.js:355:177359
 ❯ Module.prototype._compile ../../../blitz.7a1fe16d.js:55:14883
 ❯ Module."] ../../../blitz.7a1fe16d.js:55:15564
 ❯ Module.prototype.load ../../../blitz.7a1fe16d.js:55:13469
 ❯ Module._load ../../../blitz.7a1fe16d.js:55:10541
 ❯ Module.prototype.require ../../../blitz.7a1fe16d.js:55:13787
 ❯ i ../../../blitz.7a1fe16d.js:98:2198
 ❯ _0x5b8ff6 ../../../blitz.7a1fe16d.js:355:176557
 ❯ function ../../../blitz.7a1fe16d.js:355:177359
 ❯ Module.prototype._compile ../../../blitz.7a1fe16d.js:55:14883
 ❯ Module."] ../../../blitz.7a1fe16d.js:55:15564
 ❯ Module.prototype.load ../../../blitz.7a1fe16d.js:55:13469
 ❯ Module._load ../../../blitz.7a1fe16d.js:55:10541
 ❯ Module.prototype.require ../../../blitz.7a1fe16d.js:55:13787
 ❯ i ../../../blitz.7a1fe16d.js:98:2198
 ❯ _0x5b8ff6 ../../../blitz.7a1fe16d.js:355:176557
 ❯ function ../../../blitz.7a1fe16d.js:355:177359
 ❯ Module.prototype._compile ../../../blitz.7a1fe16d.js:55:14883
 ❯ Module."] ../../../blitz.7a1fe16d.js:55:15564
 ❯ Module.prototype.load ../../../blitz.7a1fe16d.js:55:13469
 ❯ Module._load ../../../blitz.7a1fe16d.js:55:10541
 ❯ _evaluate ../../../blitz.7a1fe16d.js:355:352285
 ❯ evaluate ../../../blitz.7a1fe16d.js:355:351379
 ❯ run ../../../blitz.7a1fe16d.js:181:2390

⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯
Serialized Error: { fileName: 'https://vitejsvitecsquxp-q0nu.w-corp.staticblitz.com/blitz.7a1fe16d.js', lineNumber: 64, columnNumber: 14437, code: 'ERR_REQUIRE_ESM' }

Expected Result

Expect unit tests to pass when importing something from NebulaGL.

Reproduce Steps

https://stackblitz.com/edit/vitejs-vite-csquxp?file=package.json

Run npm run test in the terminal on Stackblitz

Screenshots

To Do List

  • Add label and assign to milestone
  • Coding
  • Test

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

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