Skip to content

Add default exports to the package.json - #174

Merged
platypii merged 2 commits into
hyparam:masterfrom
dengribar:default-exports
Aug 26, 2026
Merged

Add default exports to the package.json#174
platypii merged 2 commits into
hyparam:masterfrom
dengribar:default-exports

Conversation

@dengribar

Copy link
Copy Markdown
Contributor

Currently, when we try to use hyparquet package in the most recent version of Meteor framework (v3.5.1) our app fails to build and emits the following error:

Error [ERR_PACKAGE_PATH_NOT_EXPORTED]: No "exports" main defined in ./node_modules/hyparquet/package.json
    at exportsNotFound (node:internal/modules/esm/resolve:310:10)
    at packageExportsResolve (node:internal/modules/esm/resolve:601:13)
    at resolveExports (node:internal/modules/cjs/loader:685:36)
    at Module._findPath (node:internal/modules/cjs/loader:752:31)
    at Module._resolveFilename (node:internal/modules/cjs/loader:1461:27)
    at wrapResolveFilename (node:internal/modules/cjs/loader:1049:27)
    at defaultResolveImplForCJSLoading (node:internal/modules/cjs/loader:1073:10)
    at resolveForCJSWithHooks (node:internal/modules/cjs/loader:1094:12)
    at Module._load (node:internal/modules/cjs/loader:1262:25)
    at wrapModuleLoad (node:internal/modules/cjs/loader:255:19)
    at Module.<anonymous> (node:internal/modules/cjs/loader:1576:12)
    at Module.mod.require (.meteor/packages/meteor-tool/.3.5.1.1cwfdj2mk9e++os.osx.arm64+web.browser+web.browser.legacy+web.cordova/mt-os.osx.arm64/dev_bundle/server-lib/node_modules/@meteorjs/reify/lib/runtime/index.js:30:33)
    at Module.__rspackServerModule.require (_build/main-dev/server-meteor.js:31:10)
    at require (node:internal/modules/helpers:153:16)
    at Object.hyparquet (./_build/main-dev/server-rspack.cjs:179636:18)
    at __webpack_require__ (./_build/main-dev/server-rspack.cjs:191962:30) {
  code: 'ERR_PACKAGE_PATH_NOT_EXPORTED'
}

I believe it happens because ./src/*.js export is missing in main entry point, but used by hyparquet-writer package which we also use; and because reify bundler supports modern exports field in package.json, but since it uses cjs loader, it searches for require or default fields in exports which are both missing. Since there's no CommonJS build in hyparquet package, I think default field should be used in exports for such cases, but require field also works (tested locally both cases)

So that Meteor v3.5.1+ can import the package

Currently it emits the following error:
Error [ERR_PACKAGE_PATH_NOT_EXPORTED]: No "exports" main defined in ./node_modules/hyparquet/package.json
    at exportsNotFound (node:internal/modules/esm/resolve:310:10)
    at packageExportsResolve (node:internal/modules/esm/resolve:601:13)
    at resolveExports (node:internal/modules/cjs/loader:685:36)
    at Module._findPath (node:internal/modules/cjs/loader:752:31)
    at Module._resolveFilename (node:internal/modules/cjs/loader:1461:27)
    at wrapResolveFilename (node:internal/modules/cjs/loader:1049:27)
    at defaultResolveImplForCJSLoading (node:internal/modules/cjs/loader:1073:10)
    at resolveForCJSWithHooks (node:internal/modules/cjs/loader:1094:12)
    at Module._load (node:internal/modules/cjs/loader:1262:25)
    at wrapModuleLoad (node:internal/modules/cjs/loader:255:19)
    at Module.<anonymous> (node:internal/modules/cjs/loader:1576:12)
    at Module.mod.require (.meteor/packages/meteor-tool/.3.5.1.1cwfdj2mk9e++os.osx.arm64+web.browser+web.browser.legacy+web.cordova/mt-os.osx.arm64/dev_bundle/server-lib/node_modules/@meteorjs/reify/lib/runtime/index.js:30:33)
    at Module.__rspackServerModule.require (_build/main-dev/server-meteor.js:31:10)
    at require (node:internal/modules/helpers:153:16)
    at Object.hyparquet (./_build/main-dev/server-rspack.cjs:179636:18)
    at __webpack_require__ (./_build/main-dev/server-rspack.cjs:191962:30) {
  code: 'ERR_PACKAGE_PATH_NOT_EXPORTED'
}

@platypii platypii left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reproduced locally with Meteor 3.5.1, Node 24.15, and Rspack. Externalizing hyparquet produces the reported ERR_PACKAGE_PATH_NOT_EXPORTED; applying this change fixes both root and deep require() resolution.

I also checked Node 18 ESM imports, Vite 8, and Browserify before/after and found no regression. Since default follows import, existing ESM resolution remains unchanged.

@platypii
platypii merged commit bed29f6 into hyparam:master Aug 26, 2026
3 checks passed
@platypii

Copy link
Copy Markdown
Collaborator

Published in hyparquet 1.29.2. Thanks @dengribar!

@dengribar

Copy link
Copy Markdown
Contributor Author

@platypii Could you please also publish a new version of hyparquet-writer that will bump hyparquet dependency to 1.29.2 (https://github.com/hyparam/hyparquet-writer/blob/ef958759d2687b37f9c5c8707a09384608921e82/package.json#L58)

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants