node.js - Nrwl Nx bygger Node-projektet endast genom att transpilera main.ts


Jag är ny på Nrwl och monorepos. Jag har en Node-app som jag försöker bygga med nx build [project-name]. Min Node-app har ett antal TypeScript-filer i en mappstruktur under src-mappen där main.ts finns. När jag kör nx build [project-name] blir bara main.ts-filen transpilerad till en .js-fil i out-mappen. Jag har dragit av mig håret idag medan jag har testat olika tsconfig-varianter för att få hela appen att transpileras till out-mappen, men utan framgång. Jag har varit tvungen att ta till tsc --project ./apps/[project-name]/tsconfig.app.json för att transpilerar hela appen. Är det ens möjligt att få NX att transpilerar ett helt Node-projekt?

Här är min tsconfig för projektet:

//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

Jag stötte precis på samma problem. Det verkar som att du måste använda @nrwl/workspace:run-commands-funktionen för att köra tsc --project ./apps/[project-name]/tsconfig.app.json

Relaterade artiklar