Open In App

Explain the difference between require() and import in Node.

Last Updated : 13 Feb, 2024
Improve
Improve
Like Article
Like
Save
Share
Report

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


Like Article
Suggest improvement
Share your thoughts in the comments

Similar Reads