Передача --project в ts-node, когда он зарегистрирован в nodemon

Эта команда используется для запуска моего сервера: 1

nodemon
  -r ts-node/register
  -r tsconfig-paths/register
  --watch server/
  --watch shared/
  --ext ts,tsx,json
  --inspect-brk=24170
  ./server/index.ts

Проблема в том, что мне нужно ts-node получить --project ./tsconfig-server.json вместо использования по умолчанию tsconfig.json, Просто включив его после -r ts-node/register (или где-либо еще) приводит к bad option: --project ошибка.

С помощью --exec 'node ./node_modules/ts-node/dist/bin.js --project ./tsconfig-amd.json' вместо -r ts-node/register работает, но затем отладчик не может подключиться к процессу. Я предполагаю, что это потому, что он пытается присоединиться к процессу nodemon, а не к процессу узла, который запускает nodemon?

Но я не могу использовать по умолчанию tsconfig.json имя файла здесь, потому что VS Code не поддерживает указание альтернативы tsconfig.json и конфигурация сервера не та, которую я хочу использовать для просмотра и редактирования кода


  1. Команда на самом деле производится VS Code на мой .vscode/launch.json который выглядит так:
    {
        // Use IntelliSense to learn about possible attributes.
        // Hover to view descriptions of existing attributes.
        // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
        "version": "0.2.0",
        "configurations": [
            {
                "type": "node",
                "request": "launch",
                "name": "nodemon",
                "runtimeExecutable": "node",
                "args": [
                    "${workspaceFolder}/server/index.ts"
                ],
                "runtimeArgs": [
                    "${workspaceFolder}/node_modules/nodemon/bin/nodemon.js",
                    "-r",
                    "ts-node/register",
                    "-r",
                    "tsconfig-paths/register",
                    "--watch",
                    "server/",
                    "--watch",
                    "shared/",
                    "--ext",
                    "ts,tsx,json"
                ],
                "restart": true,
                "console": "integratedTerminal",
                "internalConsoleOptions": "neverOpen",
                "protocol": "inspector"
            }
        ]
    }
    

0 ответов

Вам необходимо пройти --projectзначение через переменную среды "TS_NODE_PROJECT". Я делаю это в своемnodemon.json файл

{
    "restartable": "rs",
    "ignore": [".git", "node_modules/**/node_modules", "src/client"],
    "verbose": true,
    "execMap": {
      "ts": "node --require ts-node/register/transpile-only --require tsconfig-paths/register"
    },
    "watch": ["src/server", "typing"],
    "env": {
      "NODE_ENV": "development",
      "TS_NODE_PROJECT": "src/server/tsconfig.json"
    },
    "ext": "js,json,ts"
}
Другие вопросы по тегам