我有一个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。
答案 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,尤其是当您有许多系统永久运行时。