Why I'm getting Error [ERR_MODULE_NOT_FOUND]: Cannot find module when running the server

Viewed 2985

I'm doing a startup server. Basically It has initial setup with express and nodemon dependencies. Unfortunately, I'm getting ERR_MODULE_NOT_FOUND when running yarn dev or npm run dev Here is the code and file structure I have. enter image description here

2 Answers

The issue is a missing file extension. The import needs to look like this:

import { sampleExport } from "../config/env.js";
//                                         ^^^

import doesn't use the same algorithm that require used. Instead, it works according to the ECMAScript Modules specification, which requires a definite extension.

This is also explained in the node.js docs for ECMAScript modules:

A file extension must be provided when using the import keyword to resolve relative or absolute specifiers. Directory indexes (e.g. './startup/index.js') must also be fully specified.

This behavior matches how import behaves in browser environments, assuming a typically configured server.

You need to add .js extension index.js:

import { SampleExport } from "../path/file.js"

In my opinion, it is better to use .env files together with some npm package or even a json file.

Related