Swiftorial Logo
Home
Swift Lessons
Matchups
CodeSnaps
Tutorials
Career
Resources

ES Modules in Node.js

1. Introduction

ES Modules (ECMAScript Modules) provide a standardized module system in JavaScript, allowing developers to organize and reuse code effectively. Node.js has supported ES Modules natively since version 12 and improved support in subsequent versions.

2. What are ES Modules?

ES Modules are a way to structure JavaScript code in reusable components. They allow developers to import and export functionalities between different files or modules.

Note: ES Modules use the `import` and `export` keywords, contrasting with CommonJS modules, which use `require()` and `module.exports`.

3. Setting Up ES Modules

To use ES Modules in Node.js, you need to specify the module type in your package.json file.

{
    "type": "module"
}

4. Importing and Exporting

4.1 Exporting from a Module

To export functions, objects, or variables from a module, you can use the following syntax:

export const myVariable = 42;

export function myFunction() {
    console.log('Hello, World!');
}

4.2 Importing a Module

To import the exported functionality into another module, use:

import { myVariable, myFunction } from './myModule.js';

console.log(myVariable); // 42
myFunction(); // Hello, World!

5. Best Practices

  • Use file extensions (.js) for module imports to avoid confusion.
  • Group related exports in a single module to promote cohesion.
  • Use named exports when exporting multiple items for better clarity.

6. FAQ

Can I mix ES Modules and CommonJS?

Yes, but it requires careful handling. You can use dynamic imports to load CommonJS modules, but you cannot use `require()` in ES Modules.

What Node.js versions support ES Modules?

Node.js version 12.x and above support ES Modules, with better support in 14.x and beyond.