我搜索过wiki模块页面,但是找不到类似virtualenv(python)或rvm的东西。
这里有人在他们自己的环境中分离node.js吗?我真的不喜欢在系统范围内安装npm。
如果系统范围的npm包是你的主要问题,那么可以考虑使用非常酷的'bundle'命令和npm。这更接近冻结宝石或在铁轨中使用捆绑器,而不是rvm。
这非常容易。只需创建一个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版本管理系统可以提供帮助。
看看Nave https://github.com/isaacs/nave
NVM也可以用https://github.com/creationix/nvm
还有一个名为n https://github.com/visionmedia/n
bxjx的答案在概念上是准确的。但请注意,bundle命令不再占用目录。它总是将包丢弃到node_modules
文件夹中,以便npm知道以后在哪里找到它们(并且可以避免重复安装依赖项)。
任何解决方案都可能涉及安装npm和nave“系统范围”(即,在你的PATH
中,可能在~
某处),但之后只在虚拟环境中安装特定的依赖项。
我更彻底地回应了on the github issue。
tl; dr:用例是有效且有用的,虽然它主要在那里,但它并没有得到尽可能好的服务。我们应该确保通过并正确行事。
您并不总是需要全局安装依赖项。通常它是推荐的,因为那时你可以使用npm包提供的命令,但是如果你在本地(在node_modules
)目录中安装它,你也可以使用这些命令,它们只会在node_modules/.bin/
目录中,所以你必须键入node_modules/.bin/<command>
,这很烦人,但您当然可以将此路径添加到您的PATH
环境变量中:
export PATH=node_modules/.bin:$PATH
然后你可以输入<command>
并且它有效!
实际上有一个npm命令返回.bin
目录的绝对路径:
$ npm bin
/path/to/node_modules/.bin
当您在项目的子目录中时,此命令也会起作用,它将返回它在其父目录中找到的第一个node_modules/.bin
目录。
您可以在.bashrc
中添加此别名,以自动将.bin/
目录添加到PATH
:
alias nodebin='export PATH=$(npm bin):$PATH'
因此,当您在根目录中具有node_modules/
目录的项目目录中时,可以键入nodebin
然后您可以使用.bin/
目录中的所有命令!
如果你喜欢它简单,我真的推荐视觉媒体的qazxsw poi,不可能更容易!