我正在尝试使用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!
我做错了吗?
答案 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