Nuxt 4 wirft einen unerklärlichen Fehler "does not provide an export named 'value'" aus.
## Kürzlich habe ich auf Nuxt4 aktualisiert und bin auf einen unerklärlichen Fehler gestoßen: `SyntaxError: The requested module '...' does not provide an export named 'value'` – am Ende lag es nur daran, dass ich den Parameternamen `value` für eine Hilfsfunktion verwendet hatte?!
Wird gerendert...
Kürzliche Aktualisierung auf Nuxt4 führte zu einem unerklärlichen Fehler: `SyntaxError: The requested module '...' does not provide an export named 'value'` – noch seltsamer ist, dass die Zeilennummer des Fehlers in den Logs oft nicht korrekt angezeigt wird!
Mein Code, basierend auf den Log-Hinweisen, deutet alle auf eine Datei `utils/common.ts` hin, die eine Funktion mit einem Parameter namens `value` enthält. Könnte es wirklich nur daran liegen, dass ich `value` als Parameternamen für eine Hilfsfunktion verwendet habe?! Die Funktion sieht wie folgt aus:
```typescript
/**
* Setzt einen URL-Parameter
* @param name Parametername
* @param value Parameterwert
*/
export const setUrlParam = (name: string, value: string): void => {
// xxx
};
```
## Versuch der Reparatur 1: Cache leeren
Nach dem Upgrade der Abhängigkeiten trat der Fehler beim ersten Mal auf, sodass das gesamte System unzugänglich war. Der Fehler trat bereits auf der Startseite auf!
Basierend auf einem Hinweis von KI habe ich die Ordner `.nuxt` und `node_modules` geleert und den Projekt-Cache für historische Abhängigkeiten vollständig gelöscht!
Dann habe ich `npm i` && `npm run dev` erneut ausgeführt, und wie durch ein Wunder war die Startseite wieder erreichbar!
Ich war zunächst erstaunt über die Leistungsfähigkeit der `KI!`, aber meine Freude währte nur kurz. Als ich von der Startseite zu einer anderen Seite navigierte, trat der Fehler erneut auf!
Die Fehlermeldung war die gleiche, nur der Name der betroffenen Codedatei hatte sich geändert, aber die Fehlermeldung war fast identisch!
## Versuch der Reparatur 2: Parameter umbenennen
Nach der ersten Reparatur konnte ich beim zweiten Auftreten des Fehlers nicht wie beim ersten Mal das Problem durch das Leeren des Caches beheben. Egal wie oft ich den Cache leerte, es half nichts.
Nach einer Diskussion mit der KI vermutete ich, dass das Problem am Parameternamen `value` lag. Dieser Parametername ist in einigen APIs von Vue/js/ts reserviert und könnte aufgrund von Parsing-Konflikten mit Nuxt & vite auftreten.
Also versuchte ich, den Parameternamen zu ändern, von `value` zu `val`, und verwendete dann die Cache-Leerungsmethode aus Punkt `1`, um den Cache erneut zu leeren und das Projekt neu zu starten.
Wunderbarerweise trat der Fehler auf der zweiten Seite, auf der er aufgetreten war, nicht mehr auf! War der Fehler wirklich nur durch einen Parameternamen verursacht?
Wieder `KI ist großartig!`, aber wieder währte meine Freude nur kurz, und der Fehler trat erneut auf!!!
Der dritte Fehler! Wieder eine andere Seite! Was mich wahnsinnig machte, war, dass die Seite, auf der der Fehler auftrat, nach der ersten Reparatur nicht fehlerhaft war! Aber nach der zweiten Reparatur trat er auf!
Die Fehlermeldung war fast identisch! Sie kehrte zur ersten Meldung zurück, außer dass `value` in der Fehlermeldung zu `val` geändert wurde!
## Versuch der Reparatur 3: Code löschen
Nach den vorherigen Reparaturen wusste ich zumindest, dass der fehlerhafte Code die Funktion war, die wir mit dem Parameter `value` geändert hatten, obwohl er jetzt `val` heißt!
Hilflos und völlig verwirrt, wusste ich überhaupt nicht, was los war!
Dann hatte ich eine "plötzliche Eingebung": **Was wäre, wenn wir diese Funktion einfach löschen?**
Ich überprüfte und stellte fest, dass diese Funktion nirgendwo verwendet wurde! War sie nur zur Dekoration? Das war großartig! Ich habe die Funktion ohne Zögern auskommentiert.
Dann habe ich erneut die Cache-Leerung und den Neustart des Projekts aus Punkt `1` durchgeführt.
Dieses Mal trat bisher kein Fehler mehr auf keiner Seite auf (oder ich habe ihn noch nicht entdeckt). Auf jeden Fall, als ich diese Zeilen schrieb, war der Fehler noch nicht wieder aufgetreten!
## Abschließend
Jeder, der dies gelesen hat, wird erkennen, dass ich bis zum Schluss nicht herausgefunden habe, was genau mit diesem Fehler passiert ist. Wenn jemand die Ursache kennt, ist er herzlich willkommen, einen Kommentar mit seinem Rat zu hinterlassen. Ich wäre sehr dankbar!Kommentar
Melde dich an, um Kommentare anzuzeigen und zu veröffentlichen
Zur Anmeldung