Raymond
Raymond

Reputation: 115

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

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

Upvotes: 7

Views: 17201

Answers (2)

CherryDT
CherryDT

Reputation: 29011

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.

Upvotes: 16

Jorge Montejo
Jorge Montejo

Reputation: 605

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.

Upvotes: 3

Related Questions