Я искал страницу модулей вики, но не могу найти ничего похожего на 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');
npm install
заменен npm bundle
с NPM 1.0.
nodeenv - виртуальная среда для node.js (аналог virtualenv )
node.js
среда активировалась вместе со средой Python. См nodeenv -p
.
Также могут помочь некоторые системы управления версиями Node.
Проверьте Nave https://github.com/isaacs/nave
NVM также может быть использован https://github.com/creationix/nvm
Существует также один называется n https://github.com/visionmedia/n
nvm
или n
хотите автоматическое переключение при смене директорий, посмотрите на avn
: github.com/wbyoung/avn
Ответ 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
теперь я могу использовать инструменты узла без беспорядка в глобальной среде bin
Если вам это нравится простой, я рекомендую visionmedia истинно игровой п , не может быть проще!
npm install
для этого.