What Causes This Error?
This error occurs when your Node.js version is too old for the Nuxt version you’re trying to use. Nuxt 3 requires Node.js 18 or higher.
The Problem
Current version of Node.js (16.14.0) is not compatible.
Please upgrade to Node.js ^18.0.0 || ^20.0.0 || ^22.0.0
The Fix
Check Current Version
node --version
# v16.14.0 ← Too old!
Update Node.js
Using nvm (Recommended)
# Install nvm if not installed
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash
# Install Node 20 (LTS)
nvm install 20
# Use Node 20
nvm use 20
# Set as default
nvm alias default 20
# Verify
node --version
# v20.x.x ✅
Using n
# Install n
npm install -g n
# Install Node 20
n 20
# Verify
node --version
Using Homebrew (macOS)
brew update
brew upgrade node
# Or install specific version
brew install node@20
Using Chocolatey (Windows)
choco upgrade nodejs
# Or
choco install nodejs --version=20.0.0
Direct Download
Download from nodejs.org
Version Requirements
| Nuxt Version | Node.js Required |
|---|---|
| Nuxt 3.x | 18.x, 20.x, 22.x |
| Nuxt 2.x | 14.x, 16.x, 18.x |
Project Configuration
.nvmrc File
Create .nvmrc in project root:
20
Then use:
nvm use # Automatically uses version from .nvmrc
package.json Engines
{
"engines": {
"node": ">=18.0.0"
}
}
.node-version File
For tools like nodenv or asdf:
20.10.0
Checking Compatibility
# Check Node version
node --version
# Check npm version
npm --version
# Check Nuxt requirements
npm view nuxt engines
Multiple Node Versions
Using nvm
# List installed versions
nvm ls
# Switch versions
nvm use 18
nvm use 20
# Install multiple
nvm install 18
nvm install 20
Project-Specific Version
# In project directory with .nvmrc
nvm use # Uses .nvmrc version
# Or auto-switch (add to ~/.bashrc or ~/.zshrc)
# See nvm documentation for auto-switching
CI/CD Configuration
GitHub Actions
# .github/workflows/ci.yml
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: '20'
- run: npm install
- run: npm run build
Netlify
# netlify.toml
[build.environment]
NODE_VERSION = "20"
Vercel
// vercel.json
{
"build": {
"env": {
"NODE_VERSION": "20"
}
}
}
Docker
# Dockerfile
FROM node:20-alpine
WORKDIR /app
COPY package*.json ./
RUN npm install
COPY . .
RUN npm run build
Troubleshooting
Version Not Changing
# Check which node
which node
# Might be using system node instead of nvm
# Restart terminal or run:
source ~/.bashrc # or ~/.zshrc
Permission Issues
# If npm install fails with permissions
npm config set prefix ~/.npm-global
export PATH=~/.npm-global/bin:$PATH
Clearing Cache
# After upgrading Node, clear npm cache
npm cache clean --force
# Reinstall dependencies
rm -rf node_modules
npm install
Team Standardization
Ensure team uses same Node version:
// package.json
{
"engines": {
"node": ">=20.0.0",
"npm": ">=10.0.0"
},
"volta": {
"node": "20.10.0"
}
}
Quick Checklist
- Check current Node version:
node --version - Install Node 18+ (20 LTS recommended)
- Use nvm for easy version management
- Add
.nvmrcfile to project - Set
enginesin package.json - Update CI/CD configuration
- Clear npm cache after upgrade