【问题标题】:nodeenv - inside virtualenv but installing to global node packagesnodeenv - 在 vi​​rtualenv 内部,但安装到全局节点包
【发布时间】:2013-11-02 13:26:49
【问题描述】:

更新:npm 实际上是在 virtualenv 中安装的。但是,停用 virtualenv 然后调用 npm list 仍然会显示来自 virtualenv 的 npm。那是我困惑的根源。打开一个全新的终端窗口并运行 npm list 以查看全局 npm 安装显示正确的信息。

我已经创建了一个虚拟环境

mkproject MyProject

... 然后在 virtualenv 中安装 nodeenv

(MyProject) pip install nodeenv

node 和 npm 都是 virtualenv 本地的,但不知何故 npm 包仍被安装到全局 node 模块中

(MyProject)which node --> "its/the/path/to/MyProject/bin/node"

(MyProject)which npm --> 同样... "bin/npm"

但是npm install 仍然会导致模块被安装到全局节点包中...

(MyProject)npm install less

安装后:(MyProject)which less --> 给我全局节点模块路径

如何将 npm 安装限制到 virtualenv?

【问题讨论】:

  • 只是检查你是否正确切换到环境?你必须运行. nodeenv/bin/activate。见documentation
  • 它在 virtualenv 包装器中处于活动状态。

标签: node.js virtualenv


【解决方案1】:

有点晚了,希望对你有帮助。

mkvirtualenv projectname

pip install nodeenv

nodeenv -p

【讨论】:

    【解决方案2】:

    不要使用 nodeenv(因为它可以与你的 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
    ...
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-01-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-05-02
      相关资源
      最近更新 更多