在生产模式下使用 PM2 和 ts-node 启动 Node.js 应用程序时出错

问题描述 投票:0回答:1

我在让 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
命令的完整路径,但这些解决方案都不起作用。

任何帮助将不胜感激。谢谢!

node.js typescript pm2 production-environment ts-node
1个回答
0
投票

无论什么用户环境发起对您的应用程序的调用,您都需要该环境的

PATH
包含您存储
npx
ts-node
的文件夹。

如果您运行

pm2 startup
,它应该显示另一个命令供您以 root 身份运行,该命令会将正确的路径应用于您的
pm2
启动脚本。它将提出更改以供审核。运行
pm2 save
使这些更改永久生效。

© www.soinside.com 2019 - 2024. All rights reserved.