'npm install -g xxx' 安装到什么目的地?

what's the destination does 'npm install -g xxx' install to?

例如,npm install -g sinopia

在windows7,我会在C:\Users\xxxx\AppData\Roaming\npm.

里面安装sinopia命令和相关模块

在 Redhat5 上,我的节点和 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'的安装位置是否可以配置?

npm 将软件包全局安装到其全局设置 "root"。要查找给定环境中的全局根是什么,运行 npm root -g.

它通常位于 "prefix" 目录中,您可以通过 npm prefix -g.

找到该目录

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


To answer your more specific question

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

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

我看到上面已经回答了这个问题,请快速编辑。

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

npm config get prefix

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

npm config set prefix path

来源:npm global path prefix