2013-10-24 2 views
1

UPDATE: npm фактически устанавливал в virtualenv. Однако деактивация виртуального файла, а затем вызов списка npm по-прежнему показывает npm из virtualenv. Это стало причиной моей путаницы. Открытие полностью нового окна терминала и запуск списка npm для просмотра глобальных установок npm показывает правильную информацию.nodeenv - внутри virtualenv, но установка на глобальные пакеты узлов

Я создал virtualenv

mkproject MyProject

... затем установлен nodeenv внутри от virtualenv

(MyProject) pip install nodeenv

Оба узла и НПМ являются локальными для virtualenv, но так или иначе пакеты npm по-прежнему устанавливаются на модули глобальных узлов

(MyProject)which node -> "его// путь/к/MyProject/бен/узел"

(MyProject)which npm -> тоже ... "бен/НМП"

Однакоnpm install по-прежнему приводит в модулях устанавливаются на глобальные пакеты узлов ...

(MyProject)npm install less

после установки: (MyProject)which less -> дает мне путь глобального узла модули

Как я могу ограничить установку npm на virtualenv?

+0

Проверить, что вы сделали? Вы должны запустить '. nodeenv/бен/activate'. См. [Документация] (https://pypi.python.org/pypi/nodeenv) – user568109

+0

Он был активным в оболочке virtualenv. – snakesNbronies

ответ

-2

Вместо использования nodeenv (как бы заманчиво, поскольку это могло бы быть связано с вашим виртуальным env python) попробуйте вместо него использовать nave.

mkvirtualenv projectname 
nave use stable 
nave use projectname stable 
npm install -g sailsjs passport passport-persona 

Затем вы можете редактировать ~/.virtualenv/projectname/postactivate включить этот ступицу активировать

#!/usr/bin/env sh 
... 
nave use projectname stable 
... 
2

Это немного слишком поздно, но надеюсь, что это помогает.

mkvirtualenv projectname 

pip install nodeenv 

nodeenv -p 
Смежные вопросы