【问题标题】:what's the destination does 'npm install -g xxx' install to?'npm install -g xxx' 安装的目的地是什么?
【发布时间】:2016-04-19 06:17:41
【问题描述】:

例如,npm install -g sinopia

在windows7上,我会在C:\Users\xxxx\AppData\Roaming\npm里面安装sinopia命令和相关模块。

在 Redhat5 上,我的 node 和 npm 命令位于 /usr/local/clo/ven/node-v4.2.3-linux-x64/bin。当我运行“npm install -g sinopia”时,默认情况下,sinopia 作为 npm 和 node 安装在当前目录中,如下所示。

但是目前我有一台linux机器,它已经被其他人安装了sinopia。我在 node/bin 中找不到 sinopia 的启动脚本,我可以找到如下所示的 sinopia 相关内容。 。 哪里可以找到sinopia的启动脚本? npm install -g xxx 的安装位置是否可以配置?

【问题讨论】:

标签: node.js npm npm-install sinopia


【解决方案1】:

npm 将软件包全局安装到其设置的全局“根”。要查找给定环境中的全局根目录,请运行 npm root -g

它通常位于“前缀”目录中,您可以使用npm prefix -g 找到该目录。

请注意,您也可以使用 npm config -g set prefix </new/prefix/path> 更改前缀目录。


回答您更具体的问题

为了找到sinopia 可执行文件,您可以在Linux 上运行which sinopia(您可能需要在RedHat 上安装which,它应该在您的包源中可用)。它将为您提供将要为 sinopia 命令执行的文件的路径名。

但这可能是指向另一个位置的符号链接;要解析路径名,您可以在 bash 上使用 readlink -f $(which sinopia)-f 选项告诉readlink 递归地跟随链接。 $(which sinopia) 将替换为 which sinopia 命令的输出。

【讨论】:

    【解决方案2】:

    上面已经回答了这个问题。

    要查找通过 npm 全局安装的软件包的安装位置,请运行以下命令:

    npm 配置获取前缀

    要更新它,您可以使用以下命令:

    npm 配置设置前缀 路径

    来源:npm global path prefix

    【讨论】:

    • 实际上,您缺少 -g--global 标志。没有它,他将获得本地前缀(可能与全局前缀相同也可能不同,具体取决于执行位置)。
    • 我跑了'./npm config get prefix',得到了/usr/local/bfadmin/node,但是里面找不到sinopia,这个目录本身就是node二进制文件。
    • 很确定我是对的,请参阅docs.npmjs.com/misc/config#prefix。我缺少的是 set 语句之后的路径。现在更新它。 liam,npm 应该在你的路径中。你不应该从本地目录运行它。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-05
    • 2017-11-09
    • 1970-01-01
    相关资源
    最近更新 更多