Dieser Fehler ist kürzlich bei der Bereitstellung unserer App für die Produktion aufgetreten:
Error: Could not parse schema engine response: SyntaxError: Unexpected token E in JSON at position 0
Es gibt keine weitere Erklärung, warum das passiert ist, nur diese Zeile. Im letzten Merge-Commit hatten wir nur ein paar Locale-Schlüsselwörter geändert, das war’s.
Im ganzen Internet gesucht und nichts gefunden.
Dann bemerkte ich ein paar Zeilen oberhalb des Fehlers eine Warnung, etwa so:
prisma:warn Prisma failed to detect the libssl/openssl version to use, and may not work as expected. Defaulting to "openssl-1.1.x".
Ich habe auf GitHub danach gesucht und Folgendes gefunden:
Prisma findet OpenSSL 3.0.x im neuen Bücherwurm nicht
Mir ist aufgefallen, dass die neue Version des Alpine-Docker-Images, die ich verwendet habe, aus bestimmten Gründen nicht mit dem OpenSSL-Paket geliefert wird – das für die Prisma-Engine erforderlich war.
In der Problemdiskussion, die ich oben geteilt habe, hieß es, dass wir die Knotenversion 18.5.something verwenden und wir das vorübergehend beheben oder ein anderes Docker-Image verwenden können.
Aber ich muss keine andere Version von Node verwenden und Konflikte mit anderen Paketen verursachen.
Also sollte ich das Paket manuell installieren.
Dies ist das Docker-Image, das ich verwendet habe:
FROM node:18-alpine
Ich habe diese Zeilen hinzugefügt:
# install openssl RUN apk update && apk upgrade RUN apk add --no-cache openssl
Und das hat das Problem gelöst.
Das obige ist der detaillierte Inhalt vonPrisma: Die Antwort der Schema-Engine konnte nicht analysiert werden. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!