Skip to content

The roodDir compiler option not being respected when using SWC #2486

@DaleSeo

Description

@DaleSeo

Is there an existing issue for this?

  • I have searched the existing issues

Current behavior

The rootDir compiler option in tsconfig.json is not being respected when building a NestJS project with SWC. When SWC is not used, the rootDir compiler option determines the directory structure in the output directory.

Minimum reproduction code

https://github.com/DaleSeo/nestjs-typescript-starter-edqvzv

Steps to reproduce

  1. clone the above repository
  2. run npm i
  3. run nest build and check the contents of the generated dist directory

Shot 2023-12-23 at 22 12 32@2x

  1. run nest build -b swc --type-check and check the contents of the generated dist directory

Shot 2023-12-23 at 22 13 04@2x

  1. notice that the directory structure is different (the src directory has disappeared).

Expected behavior

Both nest build and nest build -b swc --type-check should generate identical build outputs for consumers who wish to utilize the swc builder.

Package

  • I don't know. Or some 3rd-party package
  • @nestjs/common
  • @nestjs/core
  • @nestjs/microservices
  • @nestjs/platform-express
  • @nestjs/platform-fastify
  • @nestjs/platform-socket.io
  • @nestjs/platform-ws
  • @nestjs/testing
  • @nestjs/websockets
  • Other (see below)

Other package

No response

NestJS version

10.3.0

Packages versions

  "dependencies": {
    "@nestjs/common": "^10.0.0",
    "@nestjs/core": "^10.0.0",
    "@nestjs/platform-express": "^10.0.0",
    "reflect-metadata": "^0.1.13",
    "rxjs": "^7.8.1"
  },
  "devDependencies": {
    "@nestjs/cli": "^10.0.0",
    "@nestjs/schematics": "^10.0.0",
    "@nestjs/testing": "^10.0.0",
    "@swc/cli": "^0.1.63",
    "@swc/core": "^1.3.101",
    "@types/express": "^4.17.17",
    "@types/jest": "^29.5.2",
    "@types/node": "^20.3.1",
    "@types/supertest": "^2.0.12",
    "@typescript-eslint/eslint-plugin": "^6.0.0",
    "@typescript-eslint/parser": "^6.0.0",
    "eslint": "^8.42.0",
    "eslint-config-prettier": "^9.0.0",
    "eslint-plugin-prettier": "^5.0.0",
    "jest": "^29.5.0",
    "prettier": "^3.0.0",
    "source-map-support": "^0.5.21",
    "supertest": "^6.3.3",
    "ts-jest": "^29.1.0",
    "ts-loader": "^9.4.3",
    "ts-node": "^10.9.1",
    "tsconfig-paths": "^4.2.0",
    "typescript": "^5.1.3"
  },

Node.js version

18.17.0

In which operating systems have you tested?

  • macOS
  • Windows
  • Linux

Other

No response

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions