Как вы запускаете NodeJS Express API с машинописными файлами в Forever? - PullRequest
0 голосов
/ 03 апреля 2020

У меня npm установлен навсегда, также npm установлен TS-узел и npm установлен машинопись, чтобы попытаться запустить этот API. Я пытался "навсегда запустить -v - c ts-node ./lib/server.ts" или "навсегда запустить -v -v ts-node ./lib/app.ts" и много вариантов, чтобы запустить его, но forever logs выдает ошибку

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 или любое другое открытое окно, так как оно будет работать на виртуальной машине, и оно должно быть всегда активным, чтобы клиент мог достичь своих конечных точек. это структура папок проекта, и на стороне клиента это проект Angular, если это имеет значение

enter image description here

Ответы [ 2 ]

0 голосов
/ 03 апреля 2020

Прежде всего, чтобы это исправить, мне нужно было запустить 'npm run prod', это вызвало сборку npm, которая дала мне нужную папку dist с приложением. js и сервером. js файлы

Затем я обнаружил, что в самой новой версии Forever есть возможность чтения файловых пространств в «C: Program Files», поэтому мы понизили версию навсегда до v1.0.1. 'навсегда запустить сервер. js', и это заставило мой API работать на правильном порту, и мое приложение Angular смогло его подключить.

0 голосов
/ 03 апреля 2020

Создание 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')));
...