Use external Node.js installation via PyPI wheels #182
Use external Node.js installation via PyPI wheels #182agriyakhetarpal wants to merge 1 commit intomainfrom
Conversation
|
A blocker early into the implementation: We would still need to address how to make Now, when we'll create a virtual environment using Then, even if we do so, https://github.com/njzjz/nodejs-wheel/blob/4dfd45dbffbe412dc216746eb71ec1fc73d8ed50/nodejs_wheel/executable.py uses subprocesses, which won't work... their implementation is in contrast to my approach, where I use the |
|
Never mind – the tests passed, and I'm not sure how. :D |
|
...and it doesn't work, as we don't have wasm32 binaries on PyPI or on jsDelivr: Here, we don't particularly need a wasm32 wheel for https://pypi.org/search/?q=+nodejs-wheel-binaries, just a Linux or macOS wheel that gets installed into the venv despite the incompatibility (either through At this point, I think that this is something that isn't worth doing, unless we want to be super hacky. I'd say it's okay to include a bunch of hacks as we've discussed elsewhere, but this one feels too quirky. We could easily ask users to install Node.js externally and globally, whether it is through Homebrew, https://github.com/njzjz/nodejs-wheel, or whichever package manager they use on their system. What do you think, @hoodmane? |
I don't understand this. Why is it needed to install nodejs inside the pyodide venv? I thought we need to install it in the host environment. I'm personally against including Node.js in pyodide-build, for the same reason I'm against including emscripten in pyodide-build. If Node.js is supported by a package with enough trusted people and users (like |
Description
This PR swaps out our Node.js dependency by including the (unofficial) binaries from PyPI: https://github.com/njzjz/nodejs-wheel. This means that
pyodide venv's Python interpreter should no longer need to rely on an Node.js installation.Closes #119