全局模块 MODULE_NOT_FOUND 如果从 pm2 启动
Global module MODULE_NOT_FOUND if started from pm2
我全局安装了 emailjs 包。我的 NODE_PATH
正确显示了来自 npm -g root
的值:/usr/lib/node_modules。在 Node REPL 中,以下命令可以从任何文件夹无错误地运行:
var email = require("emailjs/email");
但是,在通过 pm2
启动的节点脚本中,var email = require("emailjs/email")
导致 MODULE_NOT_FOUND
:
Error: Cannot find module 'emailjs/email'
可能发生了什么?
在大多数情况下(像这样)它取决于PM2。试试这个:
sudo pm2 update
不知何故,pm2
的环境冻结在最初 运行 时的状态。我的第一个应用程序没有设置 NODE_PATH
参数。它只是后来设置的。因此,即使环境设置了 NODE_PATH
参数,pm2
也看不到它。
因此,需要使用--update-env
选项启动新应用。
我全局安装了 emailjs 包。我的 NODE_PATH
正确显示了来自 npm -g root
的值:/usr/lib/node_modules。在 Node REPL 中,以下命令可以从任何文件夹无错误地运行:
var email = require("emailjs/email");
但是,在通过 pm2
启动的节点脚本中,var email = require("emailjs/email")
导致 MODULE_NOT_FOUND
:
Error: Cannot find module 'emailjs/email'
可能发生了什么?
在大多数情况下(像这样)它取决于PM2。试试这个:
sudo pm2 update
不知何故,pm2
的环境冻结在最初 运行 时的状态。我的第一个应用程序没有设置 NODE_PATH
参数。它只是后来设置的。因此,即使环境设置了 NODE_PATH
参数,pm2
也看不到它。
因此,需要使用--update-env
选项启动新应用。