【问题标题】:Ideal Directory for global npm install on CentOS 7CentOS 7 上全局 npm 安装的理想目录
【发布时间】:2019-06-07 00:37:01
【问题描述】:

我有一个 CentOS 7 生产安装,它在 /root/node_modules 中安装全局软件包。因此,它们不会在系统上全局可用。 npm root 也证实了这一点。当然,我可能会使用前缀或任何类似的 NVM-ish hack 进行安装;但我宁愿不要。

我还尝试将全局所需的软件包安装为本地 devDependencies。一个副作用是 pm2 集群模块并没有在我的所有内核上生成进程,正如我在我的其他 CentOS 开发服务器上看到的那样,而且我在比我想计数的更多的系统上安装和使用 node/npm,大多数是 Linux/CentOS 机器。

NPM states 全局包将保存在“/usr/local 或安装节点的任何位置”。这就是我所期望的,所以我尝试稍微调整一下配置编辑器,但没有成功。似乎无论我做什么,全局包都保存在/root/node_modules中,并且无法在整个系统中定位which nodemon。我发布了这个问题on superuser

【问题讨论】:

    标签: node.js npm centos


    【解决方案1】:

    npm root 将打印安装文件的目录。

    将有效的 node_modules 文件夹打印到标准输出。

    如果您在~root,这将是/root/node_modules

    不过,您也可以使用全局参数开关查询全局文件所在的位置:

    npm -g root 这将解析为 /usr/lib/node_modules 或类似的。 npm -g install .. 会将软件包安装到该全局安装目录。

    如果您希望在全局可用路径中拥有本地软件包,您可以安装到您的文件系统根目录。 cd /npm install .. 默认情况下,所有用户都拥有对该文件夹的读取权限。 Node 会找到这些包。

    whitch 命令将查找您的$PATH 中的二进制文件,而不是真正的 npm 包。您可以在 \bin 中创建符号链接并使用 npm 打包的全局二进制文件,例如 CLI 命令。

    注意:在带有 systemd 的现代发行版上,您应该编写 systemd 服务而不是运行 nodemon,尤其是当您有许多系统永久运行时。

    【讨论】:

      猜你喜欢
      • 2021-05-09
      • 1970-01-01
      • 2011-08-24
      • 2016-02-22
      • 2014-06-17
      • 2015-04-13
      • 2014-02-07
      • 1970-01-01
      • 2021-04-13
      相关资源
      最近更新 更多