nodeenv - 通过npm install -g安装时不链接grunt?

时间:2014-03-09 04:23:54

标签: node.js npm virtualenv virtualenvwrapper

我正在尝试使用nodeenv,但似乎并没有为npm安装的模块链接二进制文件。

$ mkvirtualenv venv
(venv)$ pip install nodeenv
(venv)$ nodeenv -p
(venv)$ deactivate
$ workon venv
(venv)$ which grunt
/usr/local/bin/grunt
(venv)$ npm install -g grunt
...
(venv)$ which grunt
/usr/local/bin/grunt
(venv)$ cd $WORKON_HOME/venv
(venv)$ ls bin
activate         activate.fish    easy_install     get_env_details  nodeenv          pip              postactivate     preactivate      python
activate.csh     activate_this.py easy_install-2.7 node             npm              pip-2.7          postdeactivate   predeactivate
### no grunt exe!
(venv)$ ls lib/node_modules
fsevents          grunt             mean              npm               recursive-readdir
### but it's in node_modules!

我做错了吗?

1 个答案:

答案 0 :(得分:0)

您需要停用您的venv并使用source bin / activate

激活它

有一些与节点相关的环境变化。我发现它尝试在我的jenkins构建过程中集成nodeenv。

另一种方法是手工制作所需的环境。例如,Jenkins Shiningpanda不允许停用virtualenv(或者我不知道如何),所以我使用了这个解决方法

pip install nodeenv
nodeenv --python-virtualenv

export NODE_VIRTUAL_ENV=$VIRTUAL_ENV
export PATH=$NODE_VIRTUAL_ENV/bin:$PATH
export NODE_PATH=$NODE_VIRTUAL_ENV/lib/node_modules
export NPM_CONFIG_PREFIX=$NODE_VIRTUAL_ENV

npm install -g bower
bower