require() in NodeJS:
-
require
()
is a built-in function in NodeJS used to load modules. - It takes the module’s path as an argument and returns the exported content of the module.
-
require
()
is synchronous, meaning it loads modules one after another, blocking the execution until the module is loaded.
import in NodeJS:
-
'import'
is a feature introduced in ES6 (ECMAScript 2015) for importing modules in JavaScript. -
It’s used to load modules, similar to
require()
, but it’s more modern and standardized. -
'import'
is asynchronous and supports lazy loading, meaning it loads modules only when needed, which can improve performance.
Difference between require() and import in NodeJS:
require() | import |
---|---|
Uses CommonJS syntax: require('module')
|
Uses ES6 syntax: import module from 'module '
|
Used for importing modules synchronously | Used for importing modules asynchronously (dynamic) |
Supports both CommonJS modules and ES modules |
Supports only ES modules (requires .mjs extension)
|
No explicit support for default exports |
Supports default exports (import module from 'module' )
|
Supports named exports via destructuring |
Supports named exports directly (import { name } from 'module' )
|
Does not support static analysis | Supports static analysis (enables tree shaking) |
Does not supported dynamic importing |
Supports dynamic importing (import() function)
|
Synchronous, loads modules on demand | Asynchronous, loads modules only when needed |
Not supported in browser environments | Supported in modern browsers with module support |
require()
and import
serve the same purpose of loading modules, but import
is the newer and more feature-rich approach introduced in modern JavaScript. It’s especially useful in browser environments and when working with ES6 modules