我在让 PM2 与 ts-node 一起工作时遇到问题。当我尝试使用 PM2 启动我的应用程序时,收到一条错误消息,指出 ts-node 解释器在 PATH 中不可用。
我已经尝试在我的项目中全局和本地安装 ts-node,并且我还尝试在我的
package.json
文件中指定 ts-node 命令的完整路径,但这些解决方案都不起作用。
这是我的
package.json
文件中的启动脚本:
"scripts": {
"start": "ts-node src/server.ts",
"start:dev": "pm2 start --name backend C:\\Users\\Pc\\AppData\\Roaming\\npm\\ts-node src/server.ts",
"start:prod": "pm2 start --name backend \"npx ts-node src/server.ts\""
},
这是我运行时收到的错误消息
npm run start:dev
:
\[PM2\]\[ERROR\] Interpreter C:\\Users\\Pc\\AppData\\Roaming\\npm\\node_modules\\pm2\\node_modules.bin\\ts-node is NOT AVAILABLE in PATH. (type 'which C:\\Users\\Pc\\AppData\\Roaming\\npm\\node_modules\\pm2\\node_modules.bin\\ts-node' to double check.)
这是我运行时收到的错误消息
npm run start:prod
:
> [email protected] start:prod2
> pm2 start --name backend "npx ts-node src/server.ts"
\[PM2\]\[ERROR\] Script not found: E:\\learning\\self_learning\\Projects\\nest\\backend\\npx ts-node src\\server.ts
我尝试过的:
我正在尝试在生产模式下使用 PM2 启动我的 Node.js 应用程序。这是我的
package.json
文件的相关部分:
"scripts": {
"start:dev": "pm2 start --name backend C:\\Users\\Pc\\AppData\\Roaming\\npm\\ts-node src/server.ts"
},
我预期会发生什么:
我希望 PM2 使用
ts-node
解释器和 src/server.ts
文件启动我的应用程序。
实际结果:
当我运行
npm run start:dev
时,我收到以下错误消息:
\[PM2\]\[ERROR\] Interpreter C:\\Users\\Pc\\AppData\\Roaming\\npm\\node_modules\\pm2\\node_modules.bin\\ts-node is NOT AVAILABLE in PATH. (type 'which C:\\Users\\Pc\\AppData\\Roaming\\npm\\node_modules\\pm2\\node_modules.bin\\ts-node' to double check.)
我已经尝试在我的项目中全局和本地安装
ts-node
,并且我还尝试在我的ts-node
文件中指定package.json
命令的完整路径,但这些解决方案都不起作用。
任何帮助将不胜感激。谢谢!
无论什么用户环境发起对您的应用程序的调用,您都需要该环境的
PATH
包含您存储 npx
和 ts-node
的文件夹。
如果您运行
pm2 startup
,它应该显示另一个命令供您以 root 身份运行,该命令会将正确的路径应用于您的 pm2
启动脚本。它将提出更改以供审核。运行 pm2 save
使这些更改永久生效。