Запуск сценария, когда ts-node-dev перезапускает сервер - PullRequest
1 голос
/ 09 апреля 2020

В настоящее время у меня установлен ts-node-dev с моим node js сервером, и он просматривает мои .ts файлы с флагом --respawn. Мой сервер успешно перезагружается, но мне, когда изменяется файл .ts, мне нужно запустить команду типа yarn build, чтобы скомпилировать измененные файлы (или все файлы), чтобы убедиться, что мои изменения присутствуют на перезапущенном сервере.

Кажется, я не могу найти способ запустить скрипт при перезапуске сервера.

Я пробовал что-то вроде:

"start": "ts-node-dev --respawn --transpile-only yarn build && src/main.js"

В моем пакете. json, но он пытается разрешить мою команду yarn build как имя файла.

Как я могу ie сценарий включить в процесс перезапуска?

{
  "compileOnSave": true,
  "compilerOptions": {
    "target": "es2017",
    "lib": ["es2017", "esnext.asynciterable"],
    "module": "commonjs",
    "moduleResolution": "node",

    "rootDir": ".",
    "sourceMap": true,
    "newLine": "LF",

    "forceConsistentCasingInFileNames": true,
    "noImplicitReturns": true,
    "strict": true,

    // For typeORM support
    "experimentalDecorators": true,
    "emitDecoratorMetadata": true,
    "strictPropertyInitialization": false,

    "pretty": true,
    "typeRoots": ["node_modules/@types"]
  },
  "include": ["src/**/*", "db/**/*", "swagger/**/*", "test/**/*"]
}

Это мой tsconfig. json, как мне указать с помощью команды watch, чтобы просмотреть все файлы sr c и папки

1 Ответ

2 голосов
/ 09 апреля 2020

В соответствии с документацией ts-node-dev команда выглядит так:

ts-node-dev --respawn --transpileOnly <YOUR TS FILE>

Вам следует примерить стартовый скрипт для пакета. json:

"dev": "ts-node-dev --respawn --transpileOnly --watch src,db,swagger,test src/main.ts"
"start": "node dist/src/main.js"

В вашем файле tsconfig. json файл, вы должны иметь конфигурацию outDir, эта конфигурация определяет папку, в которую будет помещен скомпилированный вами код, например, посмотрите на мой tsconfig. json:

{
    "compilerOptions": {
        "module": "commonjs",
        "esModuleInterop": true,
        "target": "ES2017",
        "moduleResolution": "node",
        "outDir": "./dist",
        "strict": true,
        "strictPropertyInitialization": false,
        "sourceMap": true,
        "emitDecoratorMetadata": true,
        "experimentalDecorators": true
    },
    "exclude": ["node_modules"],
    "include": [
        "./src/**/*.tsx",
        "./src/**/*.ts",
        "src/__tests__",
        "./src/**/*",
    ]  
}

У меня есть outDir config, когда я запускаю ts c или npm run build, будет создана папка dist, а внутри будут все мои. js files

...