Import / Export

JavaScript modules let you split code into reusable files.

Named Exports

// math.js
export const PI = 3.14159

export function add(a, b) {
  return a + b
}

export function multiply(a, b) {
  return a * b
}

Named Imports

// main.js
import { PI, add, multiply } from './math.js'

console.log(PI)          // 3.14159
console.log(add(2, 3))   // 5

// Import with alias
import { add as sum } from './math.js'
console.log(sum(1, 2))   // 3

Default Export

// greet.js
export default function greet(name) {
  return \`Hello, \${name}!\`
}

// main.js
import greet from './greet.js'
console.log(greet('Alice'))

Node.js / CommonJS (old style)

// module.js
module.exports = {
  hello: () => 'Hello!',
  PI: 3.14
}

// index.js
const { hello, PI } = require('./module')
console.log(hello()) // 'Hello!'

package.json

{
  "name": "my-app",
  "version": "1.0.0",
  "type": "module",
  "scripts": {
    "start": "node index.js"
  }
}