node.js - Nx - hvordan importere fra en annen modul når man bygger med tsc-eksekvutøren?


Jeg har et problem som ligner på det som er beskrevet i Bygge bibliotek med import fra et annet bibliotek ved bruk av NX Monorepo.
Jeg bruker nx monorepo med en node-app og et bibliotek. Appen bygges med @nrwl/js:tsc (ikke webpack som det er som standard) og deretter kjøres med @nrwl/node:node. Slik ser project.json ut:

    "build": {
      "executor": "@nrwl/js:tsc",
      "outputs": ["{options.outputPath}"],
      "options": {
        "main": "apps/dep/src/main.ts",
        "outputPath": "dist/apps/dep",
        "tsConfig": "apps/dep/tsconfig.app.json"
      }
    },
    "serve": {
      "executor": "@nrwl/node:node",
      "options": {
        "buildTarget": "dep:build"
      }
    },

Å importere noe fra et annet bibliotek forårsaker et problem med byggingen på grunn av filer som ikke er under rootDir:

import { MyEnum } from '@zorro/types';

Dette løste jeg ved å bruke rådet fra spørsmålet ovenfor, og la til følgende innstillinger i tsconfig.app.json:

"compilerOptions": {
    ...
    "incremental": false,
    "paths": { "@zorro/*": ["dist/libs/*"] }
  },

Dette fikk tsc til å fungere, men når jeg kjører med node, får jeg en feil:

Error: Cannot find module '@zorro/types'

Får ikke til å finne ut hva som må endres for å korrekt løse stien til biblioteket for den kompilerte main.js-filen.

Relaterte artikler