This document outlines the breaking changes and migration steps needed to upgrade from v5.x to v6.0.0.
Changed: Minimum Node.js version is now 18.0.0
Why: This allows us to use modern ESM features and latest JavaScript syntax without transpilation.
Migration:
- Update your Node.js to version 18 or higher
- Check your CI/CD pipelines and Docker images
Changed: The package now uses ESM instead of CommonJS
Before (v5.x):
const dotenvDefaults = require('dotenv-defaults')
dotenvDefaults.config()
// or
require('dotenv-defaults/config')After (v6.x):
import { config } from 'dotenv-defaults'
config()
// or
import 'dotenv-defaults/config'Migration:
- Convert your
require()calls toimportstatements - Ensure your project uses
"type": "module"in package.json OR use.mjsfile extensions - Update CLI usage from
-rto--import(see below)
Changed: Node.js CLI flag for preloading
Before (v5.x):
node -r dotenv-defaults/config your-script.jsAfter (v6.x):
node --import dotenv-defaults/config your-script.jsNote: For older Node.js 18.x versions without --import support, you can use:
node --loader dotenv-defaults/config your-script.jsChanged: The package now provides named exports
Before (v5.x):
const dotenvDefaults = require('dotenv-defaults')
dotenvDefaults.config()
dotenvDefaults.parse()After (v6.x):
import { config, parse } from 'dotenv-defaults'
// or
import dotenvDefaults from 'dotenv-defaults'
dotenvDefaults.config()The package now includes full TypeScript type definitions:
import { config, parse, type ConfigOptions } from 'dotenv-defaults'
const options: ConfigOptions = {
path: './.env',
defaults: './.env.defaults',
encoding: 'utf8'
}
config(options)All functions now have comprehensive JSDoc comments for better IDE support, even in plain JavaScript.
The package now uses the exports field for better import resolution:
{
"exports": {
".": "./src/index.js",
"./config": "./config.js"
}
}dotenv: ^14.0.0 → ^16.4.7jest: ^27.2.0 → ^29.7.0standard: ^16.0.3 → ^17.1.2
- Added
@types/nodefor better TypeScript development experience - Updated test runner configuration for ESM support
| Version | Node.js | Module System | TypeScript |
|---|---|---|---|
| 5.x | ≥12 | CommonJS | ❌ (workarounds needed) |
| 6.x | ≥18 | ESM | ✅ Full support |
If you encounter issues during migration, please open an issue on GitHub.