Я искал страницу модулей вики, но не могу найти ничего похожего на virtualenv (python) или rvm.
Кто-нибудь здесь разделяет node.js в своей собственной среде? Мне действительно не нравится устанавливать npm для всей системы.
Я искал страницу модулей вики, но не могу найти ничего похожего на 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');
npm install
.
- person Marnen Laibow-Koser; 11.02.2012
npm install
заменил npm bundle
начиная с NPM 1.0, я полагаю.
- person Marnen Laibow-Koser; 11.02.2012
nodeenv — виртуальная среда для node.js (аналог virtualenv )
node.js
активировалась вместе со средой Python. См. nodeenv -p
.
- person naitsirhc; 01.06.2014
Также могут помочь некоторые системы управления версиями 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
- person wbyoung; 12.05.2015
Ответ bxjx концептуально точен. Однако обратите внимание, что команда bundle больше не использует каталог. Он всегда сбрасывает пакеты в папку node_modules
, чтобы npm знал, где их найти позже (и мог избежать двойной установки зависимостей).
Любое решение, вероятно, будет включать установку npm и nave «для всей системы» (то есть в вашем PATH
, который может быть где-то в ~
), но затем только установку ваших конкретных зависимостей в виртуальной среде.
Я ответил более подробно по проблеме с github.
Вкратце: вариант использования действителен и полезен, и хотя он в основном присутствует, он не так хорошо обслуживается, как мог бы быть. Мы должны обязательно все обдумать и сделать правильно.
Вам не всегда нужно устанавливать зависимости глобально. Обычно это рекомендуется, потому что тогда вы можете использовать команды, предоставляемые пакетами 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
Если вам нравится простота, я искренне рекомендую n компании visionmedia, что может быть проще!
https://github.com/visionmedia/n