# nodejs Node.js and npm as a module (novox/hq ADR 0477 ยง4, issue 1573). - **Declares the packages `nodejs` and `npm`.** Today dev-tools, lab and mesh-build-node declare some of them too, which the resolver allows (ADR 0303); once they require `node-toolchain` instead (issue 1573's second step), this is the only module that declares them, and `checks/toolchains` refuses another. - **Provides `node-toolchain` with the machine's reach**: a module that requires it composes only on a machine where this module is assigned. It is never pulled in for whatever asked, so `nodejs` is assigned to a node on purpose. Nothing requires it yet; dev-tools, lab and mesh-build-node will, in the second step. - Holds no long-running resource, so it adds nothing to `health-undeclared`. The node-engine never uninstalls a package, so when the users stop declaring `nodejs` and `npm`, nothing leaves a node that has this module.