En CommonJS-fil försöker använda ESM-syntax (`import`), vilket Node.js inte tillåter utan rätt konfiguration.
Förklaring
JavaScript har två modulsystem: CommonJS (CJS) som använder require(), och ES Modules (ESM) som använder import/export. Node.js hanterar dem separat och blandar dem inte utan explicit konfiguration. Felet visas när en fil med CJS-kontext försöker använda import-syntax.
I Next.js-projekt är det vanligast i konfigurationsfiler som next.config.js och jest.config.js, i skript som körs direkt med Node.js, eller när ett NPM-paket enbart exporterar ESM men projektet förväntar sig CJS.
Felet är inte direkt relaterat till Next.js utan till Node.js modulhantering, men det dyker upp ofta i Next.js-projekt.
Vanliga orsaker
En .js-konfigurationsfil utan type: 'module' i package.json använder import. Ett paket som enbart exporterar ESM importeras i ett CJS-sammanhang. Babel eller transpilering saknas för relevanta filer.
Lösning
Byt till CommonJS-syntax i konfigurationsfilen:
// next.config.js — använd module.exports, inte export default
const nextConfig = {
// ...
};
module.exports = nextConfig;Alternativt, byt filnamnet till .mjs för att explicit markera det som ESM, eller lägg till type: 'module' i package.json om hela projektet ska använda ESM.