-
Notifications
You must be signed in to change notification settings - Fork 516
Open
Labels
Description
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
- Create a new NestJS project
- Add
"type": "module"to package.json - Install
@nestjs/swagger@11.2.0 - Import swagger in any file:
import { DocumentBuilder, SwaggerModule } from '@nestjs/swagger';
- Build and run the application
- 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.jsalso 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:
-
Import statements should work as expected:
import { DocumentBuilder, SwaggerModule } from '@nestjs/swagger';
-
The package should be automatically resolved by Node.js ESM module resolution when
"type": "module"is set in package.json -
Both development and production modes should work without errors:
nest start --watch(development)node dist/main.js(production)
-
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