Closed gjvoosten closed 3 years ago
From the PR at https://github.com/JSONPath-Plus/JSONPath/pull/146#discussion_r569496321
Hmm... I've added a comment at webpack/webpack#11597 (comment) , as it looks to me that bundlers should not be using
type
for interpretation of non-Node fields. There is a workaround there that may work for now without our changing the code, as I really think we should be able to use ".js" with browser ESM while usingtype: commonjs
for Node. If we don't hear back in some time, let's file a new Webpack issue.
Also, when we may be able to revisit this, per the end of https://nodejs.org/api/packages.html#packages_conditional_exports :
...using "node" and "default" condition branches is usually preferable to using "node" and "browser" condition branches.
Describe the bug
The current
package.json
specifies: https://github.com/JSONPath-Plus/JSONPath/blob/v5.0.2/package.json#L7-L10 which, if I read https://webpack.js.org/guides/package-exports/ correctly, mean the node version is always imported, even in browser mode.We noticed this change in behaviour when our JSONPath queries were suddenly taking much longer to run after upgrading from v4.0.0 to v5.0.2. A query that would take < 3ms under v4.0.0 was suddenly taking > 100ms under v5.0.2. Replacing
index-node-esm.mjs
withindex-browser-esm.js
would bring the performance back to normal.