Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Is npm in Node like virtualenv in Django?

I'm new to NodeJS and I'm having trouble understanding npm

I'm following 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.

like image 545
Zaham2 Avatar asked Dec 22 '19 12:12

Zaham2


1 Answers

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).

like image 172
Burhan Khalid Avatar answered Sep 29 '22 15:09

Burhan Khalid