【问题标题】:How do you set up npm (node package manager) without root access?如何在没有 root 访问权限的情况下设置 npm(节点包管理器)?
【发布时间】:2015-10-01 18:53:56
【问题描述】:

将 npm 设置为 root 用户是直接且有效的。除非您必须以 root 身份运行 npm 命令(不推荐)。所以我想我会尝试将其设置为非root用户。

根据 npm 文档,没有 root 访问权限的非 root 用户可以通过以下方式设置 npm:

  1. 创建一个.npmrc 文件,其中rootbinrootmanroot 指向用户拥有的文件夹。
  2. 然后运行安装脚本。

好的。安装没问题。

但是node看不到npm提供的包。

那么如何让 node 知道 npm 提供的包呢? (当我以前以 root 身份安装 npm 时,我不需要做任何事情)。 我可以在 node 中设置require.paths,或者设置NODE_PATH 环境变量,但是设置什么?

谢谢。

【问题讨论】:

  • npm现在不是自带node了吗?我从来不需要以 root 身份运行 npm commans,除非我使用 -g...

标签: javascript node.js npm


【解决方案1】:

这对我有用:

  1. 创建一个~/.node 文件夹

    mkdir ~/.node
    
  2. 编辑~/.npmrc并添加行

    prefix = ~/.node
    
  3. 编辑您的 ~/.profile~/.bash_profile 并添加这些行

    PATH="$HOME/.node/bin:$PATH"
    NODE_PATH="$HOME/.node/lib/node_modules:$NODE_PATH"
    

现在我可以执行npm -g install http-server 之类的操作,并且无需root 即可安装到~/.node。有了这个,当我输入 http-server 时,它就会运行。

【讨论】:

    【解决方案2】:

    通过一些探索,您似乎可以:

    1. NODE_PATH 设置为 npm 的根目录,或者
    2. 在节点中,调用require.paths.push('path_to_npm_root')

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-05-16
    • 1970-01-01
    • 2011-10-23
    • 2013-05-29
    • 1970-01-01
    • 1970-01-01
    • 2012-12-20
    • 2011-11-19
    相关资源
    最近更新 更多