Eu tenho um projeto ApolloServer que está me dando problemas, então pensei em atualizá-lo e ter problemas ao usar o Babel mais recente. Meu "index.js" é:
require('dotenv').config()
import {startServer} from './server'
startServer()
E quando o executo, recebo o erro "SyntaxError: Não é possível usar a declaração de importação fora de um módulo". Primeiro, tentei fazer as coisas para convencer o TPTB * de que este era um módulo (sem sucesso). Então eu mudei a "importação" para uma "exigência" e isso funcionou.
Mas agora tenho cerca de duas dúzias de "importações" em outros arquivos, dando-me o mesmo erro.
* Tenho certeza que a raiz do meu problema é que nem tenho certeza do que está reclamando sobre o problema. Eu meio que presumi que fosse o Babel 7 (já que eu sou do Babel 6 e precisei alterar as predefinições), mas não tenho 100% de certeza.
A maior parte do que encontrei para soluções não parece se aplicar ao Node direto. Como este aqui:
Importação do módulo ES6 fornecendo "Untaught SyntaxError: identificador inesperado"
Diz que foi resolvido adicionando "type = module", mas isso normalmente ocorre no HTML, do qual não tenho nenhum. Também tentei usar as predefinições antigas do meu projeto:
"presets": ["es2015", "stage-2"],
"plugins": []
Mas isso me dá outro erro: "Erro: arquivos de plug-in / predefinidos não podem exportar objetos, apenas funções".
UPDATE: Aqui estão as dependências com as quais eu comecei:
"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
para 'ts-jest/presets/js-with-ts'
- ainda tem alguns outros problemas, mas isso resolveu o grande problema. ..... uh sim, o meu problema estava testando relacionados ... o normal de construções eram muito bem