Table of Contents

CommonJs (NodeJs) - Require

About

The import functionality implementation of commonjs (and then node) is done via the require function

require basically:

It is the built-in statement from the commonjs module format to load module.

Require vs Import

require permits to load CommonJs Module whereas the import statement permits to load ESM module

Node.js follows by default the commonJs format, if you want to use import, you need to:

Syntax and High-level algorithm of require in Node

If the code is run directly on Node without any other tool, the require node function is used to resolve (find) the dependency.

The below require statement called from a module located at path Y

require(X) 

where:

Require will resolve the module location with the following algo:

More .. see high-level algorithm in pseudocode of what require.resolve() does

Dependency Cycle

See https://nodejs.org/api/modules.html#modules_cycles

Module File Extension

If the exact filename is not found, then Node.js will attempt to load the required filename with the added extensions:

Example

Node Module

Local Package installed with Javascript - npm (Node package manager)

var demo=require('package-name');

demo.printMsg

Project Module

const { PI } = Math;

exports.area = (r) => PI * r ** 2;

exports.circumference = (r) => 2 * PI * r;
//  loads the module circle.js that is in the same directory as foo.js.
const circle = require('./circle.js');
console.log(`The area of a circle of radius 4 is ${circle.area(4)}`);