Я искал страницу модулей вики, но не могу найти ничего похожего на virtualenv (python) или rvm.
Кто-нибудь здесь разделяет node.js в своем собственном env? Я действительно не люблю устанавливать npm для всей системы.
Я искал страницу модулей вики, но не могу найти ничего похожего на virtualenv (python) или rvm.
Кто-нибудь здесь разделяет node.js в своем собственном env? Я действительно не люблю устанавливать 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(Analog 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
, который может быть где-то в ~
), а затем только установка ваших конкретных зависимостей в виртуальной среде.
Я ответил более подробно на проблему github.
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/
!
выглядит лучше:
Установка Node.js и npm в Python Virtualenv
теперь я могу использовать инструменты node без помех для глобальной среды bin
Если вам это нравится, я действительно рекомендую visionmedia n, не может быть проще!