Есть ли виртуальная среда для node.js?

Я искал страницу модулей вики, но не могу найти ничего похожего на virtualenv (python) или rvm.

Кто-нибудь здесь разделяет node.js в своем собственном env? Я действительно не люблю устанавливать npm для всей системы.

Ответ 1

Если в вашей основной проблеме есть системные пакеты 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');

Ответ 2

nodeenv - виртуальная среда для node.js(Analog virtualenv)

Ответ 4

bxjx ответ концептуально точен. Однако учтите, что команда bundle больше не принимает каталог. Он всегда переносит пакеты в папку node_modules, так что npm знает, где их найти позже (и может избежать двойных установок зависимостей).

Любое решение, вероятно, будет связано с установкой npm и nave "в системном масштабе" (то есть в вашем PATH, который может быть где-то в ~), а затем только установка ваших конкретных зависимостей в виртуальной среде.

Я ответил более подробно на проблему github.

tl; dr: Случай использования действителен и полезен, и хотя он в основном там, он не так хорошо служил, как мог. Мы должны обязательно подумать об этом и сделать это правильно.

Ответ 5

Вам не всегда нужно устанавливать зависимости во всем мире. Обычно это рекомендуется, потому что тогда вы можете использовать команды, предоставляемые пакетами 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/!

Ответ 7

Если вам это нравится, я действительно рекомендую visionmedia n, не может быть проще!

https://github.com/visionmedia/n