is there an virtual environment for node.js?

2019-01-29 18:19发布

I've searched the wiki modules page, but I can't find anything similar to virtualenv (python) or rvm.

Anyone here separates node.js in their own env? I really don't like to install npm system-wide.

8条回答
仙女界的扛把子
2楼-- · 2019-01-29 18:33

bxjx's answer is conceptually accurate. However, please note that the bundle command no longer takes a directory. It always drops packages into the node_modules folder, so that npm knows where to find them later (and can avoid double-installing dependencies).

Any solution will probably involve installing npm and nave "system-wide" (that is, in your PATH, which could be in ~ somewhere), but then only installing your specific dependencies in the virtual environment.

I responded more thoroughly on the github issue.

tl;dr: The use case is valid and helpful, and while it's mostly there, it's not as well served as it could be. We should make sure to think it through and do it right.

查看更多
Emotional °昔
3楼-- · 2019-01-29 18:35

There are also some Node version management systems that can help.

Check out Nave https://github.com/isaacs/nave

NVM could also be used https://github.com/creationix/nvm

There is also one called n https://github.com/visionmedia/n

查看更多
相关推荐>>
4楼-- · 2019-01-29 18:37

I think it doesn't make sense at all to work on node environment without an installed node. It's like you didn't install python and pip when you want to work on a python project! of course for using virtualenv and irtualenvwrapper the pre-require is python.

If you want to work on a Node project it's really normal to install node and npm at least.

If you just want to run a python project on the web (for example with Django), you can use the build version of the JavaScript file and load this file into your project.

查看更多
虎瘦雄心在
5楼-- · 2019-01-29 18:39

You don't always need to install dependencies globally. Usually it's recommended because then you can use the commands an npm packages provides, but if you install it locally (in the node_modules) directory, you can also use these commands, they only wind up in the node_modules/.bin/ directory, so you'll have to type node_modules/.bin/<command>, which is annoying, but you can of course add this path to your PATH environment variable:

export PATH=node_modules/.bin:$PATH

Then you can just type <command> and it works!

There's actually an npm command that returns an absolute path to the .bin directory:

$ npm bin
/path/to/node_modules/.bin

This command also works when you're in a subdirectory of the project, it will return the first node_modules/.bin directory it finds in it's parent directories.

You can add this alias in your .bashrc to automatically add the .bin/ directory to your PATH:

alias nodebin='export PATH=$(npm bin):$PATH'

So when you're in a directory of a project that has a node_modules/ directory in the root, you can type nodebin and then you can use all the commands that are in the .bin/ directory!

查看更多
男人必须洒脱
6楼-- · 2019-01-29 18:43

looks there is a better way:

Installing Node.js and npm into a Python Virtualenv

now I can use node tools without mess the global bin environment

查看更多
Lonely孤独者°
7楼-- · 2019-01-29 18:48

nodeenv - virtual environment for node.js ( Analog virtualenv )

查看更多
登录 后发表回答