← Back to context

Comment by embedding-shape

7 days ago

> For example, I don't think there are Node.js libraries packaged for Debian that allow you to install them from apt and use it in projects

Web search shows some: https://packages.debian.org/search?keywords=node&searchon=na... (but also shows "for optimizing reasons some results might have been suppressed" so might not be all)

Although probably different from other distros, Arch for example seems to have none.

Locally, you can do:

  apt-cache showpkg 'node-*' | grep ^Package:

which returns 4155 results, though 727 of them are type packages.

Using these in commonjs code is trivial; they are automatically found by `require`. Unfortunately, system-installed packages are yet another casualty of the ESM transition ... there are ways to make it work but it's not automatic like it used to be.

  • > there are ways to make it work but it's not automatic like it used to be

    Out of curiosity, what would you recommend? And what would be needed to make them work automatically?

    • Some solutions include: add a hook to node on the command line, fake a `node_modules`, try to make an import map work, just hard-code the path ... most of this is quite intrusive unlike the simple `require` path.

      I really don't have a recommendation other than another hack. The JS world is hacks upon hacks upon hacks; there is no sanity to be found anywhere.

  • > Unfortunately, system-installed packages are yet another casualty of the ESM transition ...

    A small price to pay for the abundant benefits ESM brings.

    • Honestly, I don't see the value gain, given how many other problems the JS tooling has (even ignoring the ecosystem).

      In particular, the fact that Typescript makes it very difficult to write a project that uses both browser-specific and node-specific functionality is particularly damning.