Изолировать сборку / компиляцию машинописного текста для каждого проекта в монорепозитории? - PullRequest
0 голосов
/ 05 августа 2020

В настоящее время у вас есть angular приложение и express сервер внутри одного репо. Моя проблема в том, что всякий раз, когда я меняю файл в своем приложении angular, он также повторно компилирует express файлы сервера .

Мое ожидаемое поведение - angular app повторно компилируется только при изменении его файла и не перекомпилирует сервер express, то же самое происходит с express server .

Я думаю это как-то связано с конфигурацией.

Вот моя структура папок:

.
├── tsconfig.json
├── server/ <- express app
│   └── package.json
├── client/ <- angular app
│   ├── src/
│   ├── package.json
│   └── tsconfig.json
└── models/
    └── user.model.ts <- interface model shared between client and server

Вот приложение angular tsconfig.json

{
  "compileOnSave": false,
  "compilerOptions": {
    "baseUrl": "./",
    "paths": {
      "@models/*": ["../models/*"]
    },
    "outDir": "./dist/out-tsc",
    "sourceMap": true,
    "declaration": false,
    "downlevelIteration": true,
    "experimentalDecorators": true,
    "module": "esnext",
    "moduleResolution": "node",
    "importHelpers": true,
    "target": "es2015",
    "lib": ["es2018", "dom"]
  },
  "angularCompilerOptions": {
    // "fullTemplateTypeCheck": true,
    "strictTemplates": true,
    "strictInjectionParameters": true
  }
}

Вот express приложение tsconfig.json

{
  "compilerOptions": {
    "baseUrl": ".",
    "paths": {
      "@models/*": ["./models/*"]
    },
    "target": "es2015",
    "module": "commonjs",
    "rootDir": "./server",
    "outDir": "./build",
    "esModuleInterop": true,
    "strict": true,
    "typeRoots": ["node_modules/@types"]
  },
  "exclude": ["node_modules/"]
}

Есть ли что-то, что я должен изменить в моей конфигурации? Есть ли способ предотвратить такое поведение?

...