Issue
I'm new to NodeJS and I'm having trouble understanding npm
I'm following rel="noreferrer">this tutorial and I can't seem to map the concepts tot he ones I know from my Django experience.
Where exactly do my packages get installed? Can't I have project-specific packages like Django does with virtualenv? If I understand correctly this might cause compatibility issues in the future.
Solution
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).
Answered By - Burhan Khalid Answer Checked By - Marie Seifert (WPSolving Admin)