首页 > 解决方案 > 你如何使用 Forever 运行带有 typescript 文件的 NodeJS Express API?

问题描述

我已经永久安装了 npm,还安装了 npm ts-node,并且 npm 安装了 typescript 以尝试让这个 API 运行。我一直在尝试“永远启动 -v -c ts-node ./lib/server.ts”或“永远启动 -v -v ts-node ./lib/app.ts”和许多变体来运行它,但永远记录抛出错误

events.js:187
      throw er; // Unhandled 'error' event
      ^

Error: spawn tail ENOENT
    at Process.ChildProcess._handle.onexit (internal/child_process.js:264:19)
    at onErrorNT (internal/child_process.js:456:16)
    at processTicksAndRejections (internal/process/task_queues.js:80:21)
Emitted 'error' event on ChildProcess instance at:
    at Process.ChildProcess._handle.onexit (internal/child_process.js:270:12)
    at onErrorNT (internal/child_process.js:456:16)
    at processTicksAndRejections (internal/process/task_queues.js:80:21) {
  errno: 'ENOENT',
  code: 'ENOENT',
  syscall: 'spawn tail',
  path: 'tail',
  spawnargs: [ '-n', 100, 'C:\\Users\\*****\\.forever\\P0EG.log' ]

如果我遵循该日志文件,它会说

'ts' 不是内部或外部命令、可运行程序或批处理文件。错误:永远检测到脚本退出,代码:1

我已经为此工作了好几天,似乎无法找出解决方案,我需要在后台运行服务器而不需要打开 VSCode 或任何其他窗口,因为这将在 VM 上运行并且需要它始终是让客户端能够访问其端点。这是项目的文件夹结构,如果重要的话,客户端是一个 Angular 项目

在此处输入图像描述

标签: node.jstypescriptapiforever

解决方案


使用. Angular_ dist_ng build --prod

Angular.json文件应包含有关如何执行此操作的说明

"options": {
    "outputPath": "dist",

    "index": "... index.html",
    "main": "... main.ts",

    "assets": [
        ... assets file location
    ],
    "styles": [
         ... your css
    ],
    "scripts": []
}

让您的node服务器指向该目录:

/* init static directory */
app.use(express.static(path.join(__dirname, 'dist')));

推荐阅读