node.js - Nrwl Nx bygger Node-prosjektet bare transpilere main.ts


Jeg er ny med Nrwl og monorepos. Jeg har en Node-app som jeg prøver å bygge med nx build [project-name]. Node-appen min har noen få TypeScript-filer i en mappestruktur under src-mappen hvor main.ts finnes. Når jeg kjører nx build [project-name], blir bare main.ts-filen transpilert til en .js-fil i out-mappen. Jeg har nesten holdt på å trekke meg i håret i dag mens jeg prøvde forskjellige tsconfig-variasjoner for å få hele appen til å transpileres til out-mappen uten hell. Jeg har måttet ty til å bruke tsc --project ./apps/[project-name]/tsconfig.app.json for å transpiler hele appen. Er det overhodet mulig å få NX til å transpiler et helt Node-prosjekt?

Her er min tsconfig for prosjektet:

//tsconfig.app.json
{
  "extends": "./tsconfig.json",
  "compilerOptions": {
    "outDir": "../../dist",
    "types": [
      "node"
    ]
  },
  "exclude": [
    "**/*.spec.ts"
  ],
  "include": [
    "**/*.ts"
  ]
}

//tsconfig.base.json
{
  "compileOnSave": false,
  "compilerOptions": {
    "allowSyntheticDefaultImports": true,
    "rootDir": ".",
    "sourceMap": true,
    "declaration": false,
    "moduleResolution": "node",
    "emitDecoratorMetadata": true,
    "experimentalDecorators": true,
    "importHelpers": true,
    "target": "es2017",
    "module": "commonjs",
    "esModuleInterop": true,
    "typeRoots": [
      "node_modules/@types"
    ],
    "lib": [
      "es2017",
      "dom"
    ],
    "skipLibCheck": true,
    "skipDefaultLibCheck": true,
    "baseUrl": ".",
    "paths": {
      "@work-orders/interfaces": [
        "libs/interfaces/src/index.ts"
      ],
      "@work-orders/domain": [
        "libs/work-orders-domain/src/index.ts"
      ]
    }
  },
  "exclude": [
    "node_modules",
    "tmp"
  ]
}

Svar #1

Jeg støtte nettopp på det samme problemet. Det ser ut til at du må bruke @nrwl/workspace:run-commands-funksjonaliteten for å kjøre tsc --project ./apps/[project-name]/tsconfig.app.json

Relaterte artikler