在CentOS 7上安装全局npm的理想目录

时间:2019-01-12 07:16:57

标签: node.js npm centos

我有一个CentOS 7生产安装,该安装将全局软件包安装在/root/node_modules中。因此,它们将不会在系统上全局可用。 npm root也证实了这一点。当然,我可能会安装前缀或任何类似NVM的技巧;但我不想。

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

NPM states表示全局软件包将“保存在/usr/local或安装节点的任何位置”。这就是我所期望的,所以我尝试对配置编辑器进行一些微调以防万一。看来,无论我做什么,全局软件包都保存在/root/node_modules中,并且无法在整个系统中以which nodemon进行定位。我发布了这个问题on superuser

1 个答案:

答案 0 :(得分:0)

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

  

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

如果您位于~root,则将是/root/node_modules

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

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

如果要在全局可用路径中拥有本地软件包,则可以安装到文件系统根目录。 cd /,从那里npm install ..,所有用户默认都将对该文件夹具有读取权限。节点将找到这些软件包。

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

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