Node 中的 npm 是否类似于 Django 中的 virtualenv?

Is npm in Node like virtualenv in Django?

我是 NodeJS 的新手,我无法理解 npm

我正在学习 this 教程,但我似乎无法将这些概念映射到我从 Django 经验中了解到的概念。

我的软件包具体安装在哪里?我不能像 Django 和 virtualenv 一样拥有项目特定的包吗?如果我理解正确,这可能会导致将来出现兼容性问题。

嘿,当您使用 npm 安装包时,包将安装到工作目录中的 node_modules(在项目到项目的基础上)。

全局安装包时除外 (npm install -g packagename)

npm 就像 Python 中的 pip,它是一种下载和安装软件包的方式。 node_modules 是安装这些包的目录。这与虚拟环境不同;其中有解释器和其他库。

在node中,你可以获得一个虚拟环境(详见:is there an virtual environment for node.js?)。想法是一样的 - 一个隔离的环境,用于更好的测试和可移植性。

在 Python 中,有 requirements.txt(和 pipenv),在节点中有 package.json(用于包)和模块(在 node_modules).

documentation 更详细地介绍了它们的区别;但是来自 Python,您可以将节点包视为具有 package.json 的东西(因此,就像 setup.py),而模块就是您可以 import(或节点中的 include())。