Tengo un proyecto ApolloServer que me está causando problemas, así que pensé que podría actualizarlo y me encontré con problemas al usar el último Babel. Mi "index.js" es:
require('dotenv').config()
import {startServer} from './server'
startServer()
Y cuando lo ejecuto me sale el error "SyntaxError: No se puede usar la declaración de importación fuera de un módulo". Primero intenté hacer cosas para convencer a TPTB * de que este era un módulo (sin éxito). Así que cambié la "importación" a "requerir" y esto funcionó.
Pero ahora tengo alrededor de dos docenas de "importaciones" en otros archivos que me dan el mismo error.
* Estoy seguro de que la raíz de mi problema es que ni siquiera estoy seguro de qué se está quejando del problema. Asumí que era Babel 7 (ya que vengo de Babel 6 y tuve que cambiar los ajustes preestablecidos), pero no estoy 100% seguro.
La mayor parte de lo que he encontrado para soluciones no parece aplicarse al Nodo directo. Como este aquí:
Importación del módulo ES6 dando "Error de sintaxis no detectado: identificador inesperado"
Dice que se resolvió agregando "type = module" pero esto normalmente iría en el HTML, del cual no tengo ninguno. También he intentado usar los preajustes antiguos de mi proyecto:
"presets": ["es2015", "stage-2"],
"plugins": []
Pero eso me da otro error: "Error: los archivos de Plugin / Preset no pueden exportar objetos, solo funciones".
ACTUALIZACIÓN: Aquí están las dependencias con las que comencé:
"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
que 'ts-jest/presets/js-with-ts'
- todavía tiene algunas otras cuestiones que se resolvió el grande. ..... uh sí, mi problema estaba probando relacionado ... lo normal builds estaban bien