有没有node.js的虚拟环境?
我已经search了wiki模块页面,但是我找不到类似于virtualenv(python)或者rvm的东西。
这里的任何人在他们自己的环境中分离node.js? 我真的不喜欢在系统上安装npm。
如果系统范围的npm包是你的主要问题,那么可以考虑在npm中使用非常酷的“包”命令。 这更接近于冻结gem,或者在rails中使用bundler,而不是rvm。
这很容易。 只要创build一个package.json文件:
{ "name": "yourapp", "version": "0.0.1", "dependencies": {"jade": "0.4.1"}}
然后运行:
npm bundle vendor
或者如果你的npm版本是> = 1.0运行:
npm install
冻结到供应商目录。 然后使用:
require.paths.unshift('./vendor');
nodeenv – node.js的虚拟环境(模拟virtualenv )
还有一些Node版本pipe理系统可以提供帮助。
退房Nave https://github.com/isaacs/nave
bxjx的答案在概念上是准确的。 但请注意,bundle命令不再需要一个目录。 它总是将包放到node_modules
文件夹中,以便npm知道以后在哪里find它们(并且可以避免重复安装依赖关系)。
任何解决scheme都可能涉及“系统范围”安装npm和nave(也就是说,在您的PATH
,可能在某处),但是只能在虚拟环境中安装特定的依赖关系 。
我在github问题上做了更彻底的回应。
tl; dr:用例是有效和有用的,虽然它大部分在那里,但是它的效果并不好。 我们应该确保思考,做对。
您并不总是需要全局安装依赖关系。 通常这是推荐的,因为你可以使用npm包提供的命令,但是如果你在本地(在node_modules
)目录下安装它,你也可以使用这些命令,它们只能在node_modules/.bin/
目录中,所以你必须inputnode_modules/.bin/<command>
,这很烦人,但是你当然可以把这个path添加到你的PATH
环境variables中:
export PATH=node_modules/.bin:$PATH
然后你可以input<command>
,它就可以工作!
实际上有一个npm命令返回.bin
目录的绝对path:
$ npm bin /path/to/node_modules/.bin
当你在项目的子目录中时,这个命令也可以使用,它会返回它在父目录中find的第一个node_modules/.bin
目录。
您可以在.bashrc
添加该别名,以便自动将.bin/
目录添加到PATH
:
alias nodebin='export PATH=$(npm bin):$PATH'
因此,当您在根目录中具有node_modules/
目录的项目的目录中时,可以键入nodebin
,然后可以使用.bin/
目录中的所有命令!
如果你喜欢它简单,我真的推荐visionmedia的n ,不是更容易!
看起来还有更好的办法:
将Node.js和npm安装到Python Virtualenv中
现在我可以使用节点工具而不会混淆全局bin环境