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!
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!
-
1
Without the
-g
flag it's project specific – Sterling Archer Commented Nov 13, 2017 at 20:27 - 1 Virtualenv also handles the python executables, so it's like using npm and nvm together. – david25272 Commented Nov 13, 2017 at 21:19
- Thanks everyone! What exactly are python executables and nvm? – xlalalandx Commented Nov 13, 2017 at 22:01
2 Answers
Reset to default 7Node installs
- local:
npm install <pkg>
- global:
npm install -g <pkg>
Python installs
- local:
. <envName>/bin/activate
thenpip 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 mands slipping into global scope
NVM: way to specifiy Node version using .nvmrc
file in project root
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.