Я искал страницу модулей вики, но не могу найти ничего похожего на 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для этого.