Ich habe ein ApolloServer-Projekt, das mir Probleme bereitet. Daher dachte ich, ich könnte es aktualisieren und stieß bei der Verwendung des neuesten Babel auf Probleme. Meine "index.js" ist:
require('dotenv').config()
import {startServer} from './server'
startServer()
Und wenn ich es ausführe, erhalte ich den Fehler "SyntaxError: Importanweisung kann nicht außerhalb eines Moduls verwendet werden". Zuerst habe ich versucht, TPTB * davon zu überzeugen, dass dies ein Modul ist (ohne Erfolg). Also habe ich den "Import" in "Require" geändert und das hat funktioniert.
Aber jetzt habe ich ungefähr zwei Dutzend "Importe" in andere Dateien, die mir den gleichen Fehler geben.
* Ich bin sicher, die Wurzel meines Problems ist, dass ich nicht einmal sicher bin, was sich über das Problem beschwert. Ich nahm an, dass es Babel 7 war (da ich von Babel 6 komme und die Voreinstellungen ändern musste), bin mir aber nicht 100% sicher.
Das meiste, was ich für Lösungen gefunden habe, scheint nicht auf Straight Node zuzutreffen. Wie dieser hier:
ES6-Modul Import mit "Ungefangener SyntaxError: Unerwarteter Bezeichner"
Sagt, es wurde durch Hinzufügen von "type = module" behoben, aber dies würde normalerweise in den HTML-Code gehen, von dem ich keinen habe. Ich habe auch versucht, die alten Voreinstellungen meines Projekts zu verwenden:
"presets": ["es2015", "stage-2"],
"plugins": []
Aber das bringt mir einen weiteren Fehler: "Fehler: Plugin / Preset-Dateien dürfen keine Objekte exportieren, sondern nur Funktionen."
UPDATE: Hier sind die Abhängigkeiten, mit denen ich begonnen habe:
"dependencies": {
"@babel/polyfill": "^7.6.0",
"apollo-link-error": "^1.1.12",
"apollo-link-http": "^1.5.16",
"apollo-server": "^2.9.6",
"babel-preset-es2015": "^6.24.1",
jest.config.js
auf 'ts-jest/presets/js-with-ts'
- noch einige andere Probleme, aber dies löste das große Problem. ..... äh ja, mein Problem war das Testen im Zusammenhang ... die normalen Builds waren in Ordnung