browserify / commonjs-assert

Node.js's require('assert') for all engines
MIT License
293 stars 57 forks source link

Ambiguous Package Name #62

Open georg-schwarz opened 1 month ago

georg-schwarz commented 1 month ago

We stumbled upon the issue of ambiguous imports when using this library. require(assert) can refer to the library or Node's assert API.

It would be awesome to have the library available under a second name (e.g., assert.js) in use cases where you don't want to have this ambiguity. Other libraries with the same issue went down a similar road, e.g. punycode.

Original thread: https://github.com/sindresorhus/eslint-plugin-unicorn/issues/2326

ljharb commented 1 month ago

in node, require of “assert” will always only be the core module. There’s no ambiguity.

If you want to refer to this package, you require “assert/“. For native ESM, there’s not a good solution there, as indicated in the linked issue.

In browsers when using a bundler, this package is transparently used instead of the node core module, which is the point.

When would you want to use this package directly such that you need to disambiguate?