I reached a temporary/development solution for the time being:
A new Dockerfile, which adds npm and node to the latest homeassistant Docker image; and I’ve updated my docker-compose file to use that image instead. Not ideal, but gets me developing.
(the “Why?” is PythonMonkey, a project from my dayjob)