22👍
npm
is like pip
in Python, its a way to download and install packages. node_modules
is a directory where these packages are installed. This is not the same as a virtual environment; which has the interpreter along with additional libraries.
In node, you can get a virtual environment (see: is there an virtual environment for node.js? for more details). The idea is the same – an isolated environment for better testing and portability.
In Python, there is requirements.txt
(and pipenv
), in node you have package.json
(for packages), and modules (which go in node_modules
).
The documentation goes into a bit more detail into the difference of these; but coming from Python you can think of a node package as something that has a package.json
(so, like a setup.py
), and a module is just any file you can import
(or include()
in node).
0👍
Hey when you install a package with npm the packages are installed to node_modules
within the working directory (on a project to project basis).
With the exception of when installing packages globally (npm install -g packagename)
- Why does JSON returned from the django rest framework have forward slashes in the response?
- Django datefield and timefield to python datetime
- Django – How can you include annotated results in a serialized QuerySet?
- Django-rest-framework : list parameters in URL
0👍
To add to the excellent answer above, and to confirm if this suspicion of mine is true:
The major difference between node_modules not creating a true virtual environment is that whenever you run a node application, it will "reach_out" to use the node/js interpreter that is installed "globally" .. this of course can be manipulated with nVm, but python’s virtual environments don’t run on a "globally" installed python interpreter, instead with the one scoped-narrowly to the virtual environment