Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Is installing NodeJS packages locally equivalent to Python's virtualenv?

I've been using Python for a while and I've learned we should always use a virtual env for each project where we pip install <name> the packages as needed, etc

I'm new to JS but would downloading packages using npm install <name> without the -g option mean it will only download it in the specific project directory, similarly to how Python's virtual env is keeping the pip packages separate? or is there also some sort of virtual env that needs to be created?

Sorry if I'm misunderstanding anything here... just want to make sure that installing packages using npm install isn't going to mess w/ anything globally or something!

like image 687
xlalalandx Avatar asked Nov 13 '17 20:11

xlalalandx


2 Answers

Node installs

  • local: npm install <pkg>
  • global: npm install -g <pkg>

Python installs

  • local: . <envName>/bin/activate then pip install <pkg>
  • global: pip install <pkg>

Node usage

  • local: npm start (w/ path to binary specified in package.json e.g. "start":"./node_modules/.bin/<pkg>")
  • global: <pkg> <cmd>

Python usage

  • local: . <envName>/bin/activate then <pkg> <cmd>
  • global: <pkg> <cmd>

main takeaway: once you activate virtualenv you don't have to worry about package commands slipping into global scope


NVM: way to specifiy Node version using .nvmrc file in project root

like image 165
Zach Valenta Avatar answered Oct 16 '22 17:10

Zach Valenta


Correct, installing packages via npm install <package> installs them only for the specific project, by default in a folder node_modules in the project root.

npm install --global <package> installs a package globally.


See the npm docs for more info.

like image 36
TimoStaudinger Avatar answered Oct 16 '22 17:10

TimoStaudinger