Skip to content

Cannot find package '@nestjs/swagger' when using "type": "module" in package.json #3591

@lusu007

Description

@lusu007

Is there an existing issue for this?

  • I have searched the existing issues

Current behavior

When using @nestjs/swagger in a project with ESM enabled ("type": "module" in package.json), the application fails to start with the following error:

[1] Error [ERR_MODULE_NOT_FOUND]: Cannot find package '@nestjs/swagger' imported from /home/.../dist/apps/server/main.js
[1] Did you mean to import "@nestjs/swagger/dist/index.js"?
[1]     at Object.getPackageJSONURL (node:internal/modules/package_json_reader:316:9)
[1]     at packageResolve (node:internal/modules/esm/resolve:768:81)
[1]     at moduleResolve (node:internal/modules/esm/resolve:858:18)
[1]     at defaultResolve (node:internal/modules/esm/resolve:990:11)
[1]     at #cachedDefaultResolve (node:internal/modules/esm/loader:757:20)
[1]     at ModuleLoader.resolve (node:internal/modules/esm/loader:734:38)
[1]     at ModuleLoader.getModuleJobForImport (node:internal/modules/esm/loader:317:38)
[1]     at #link (node:internal/modules/esm/module_job:208:49) {
[1]   code: 'ERR_MODULE_NOT_FOUND'
[1] }
[1] 
[1] Node.js v24.10.0
[0] node:internal/modules/run_main:107
[0]     triggerUncaughtException(
[0]     ^
[0] 
[0] Error [ERR_MODULE_NOT_FOUND]: Cannot find package '@nestjs/swagger' imported from /home/.../dist/apps/player/main.js
[0] Did you mean to import "@nestjs/swagger/dist/index.js"?
[0]     at Object.getPackageJSONURL (node:internal/modules/package_json_reader:316:9)
[0]     at packageResolve (node:internal/modules/esm/resolve:768:81)
[0]     at moduleResolve (node:internal/modules/esm/resolve:858:18)
[0]     at defaultResolve (node:internal/modules/esm/resolve:990:11)
[0]     at #cachedDefaultResolve (node:internal/modules/esm/loader:757:20)
[0]     at ModuleLoader.resolve (node:internal/modules/esm/loader:734:38)
[0]     at ModuleLoader.getModuleJobForImport (node:internal/modules/esm/loader:317:38)
[0]     at #link (node:internal/modules/esm/module_job:208:49) {
[0]   code: 'ERR_MODULE_NOT_FOUND'
[0] }
[0] 
[0] Node.js v24.10.0

Steps to reproduce

  1. Create a new NestJS project
  2. Add "type": "module" to package.json
  3. Install @nestjs/swagger@11.2.0
  4. Import swagger in any file:
    import { DocumentBuilder, SwaggerModule } from '@nestjs/swagger';
  5. Build and run the application
  6. The error occurs immediately when Node.js tries to resolve the import

Additional details:

  • The error occurs in both development (nest start --watch) and production (node dist/main.js) modes
  • The error persists regardless of TypeScript module resolution settings (NodeNext, Node16, Bundler, Node)
  • Attempting to use explicit import paths like @nestjs/swagger/dist/index.js also fails with the same error
  • The issue is specific to ESM mode - the package works fine in CommonJS projects

Expected behavior

The @nestjs/swagger package should work seamlessly with ESM projects without any configuration changes or workarounds. Specifically:

What should happen:

  1. Import statements should work as expected:

    import { DocumentBuilder, SwaggerModule } from '@nestjs/swagger';
  2. The package should be automatically resolved by Node.js ESM module resolution when "type": "module" is set in package.json

  3. Both development and production modes should work without errors:

    • nest start --watch (development)
    • node dist/main.js (production)
  4. No explicit import paths or workarounds should be required

Expected package.json structure:
The package should include proper ESM exports in its package.json:

{
  "name": "@nestjs/swagger",
  "type": "module",
  "exports": {
    ".": {
      "import": "./dist/index.js",
      "require": "./dist/index.js"
    }
  },
  "main": "dist/index.js",
  "types": "dist/index.d.ts"
}

Package version

11.2.0

NestJS version

11.1.6

Node.js version

v24.10.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