Solucionado (ver solução)
Solucionado
(ver solução)
5
respostas

Erro de sintaxe mas escrevi como no vídeo

Está me aparecendo este erro e não entendo como resolver, criei os arquivos separados das classes, o package.json, botei para exportar e o index não roda.

import Cliente from './Cliente.js' ^^^^^^

SyntaxError: Cannot use import statement outside a module ←[90m at Module.compile (internal/modules/cjs/loader.js:892:18)←[39m ←[90m at Object.Module.extensions..js (internal/modules/cjs/loader.js:973:10)←[39m ←[90m at Module.load (internal/modules/cjs/loader.js:812:32)←[39m ←[90m at Function.Module.load (internal/modules/cjs/loader.js:724:14)←[39m ←[90m at Function.Module.runMain (internal/modules/cjs/loader.js:1025:10)←[39m ←[90m at internal/main/runmain_module.js:17:11←[39m

5 respostas

Oi Bernardo,

Tive esse seu problema algumas vezes. Ele me acontece comigo quando tento importar uma função. Para resolver eu acabei colocando a funçãodentro do arquivo onde ela é chamada.

É um erro na forma como o arquivo esta sendo importado. Pode ser obvio, mas você lembrou de importar a função no arquivo que você deseja usar? Lembresse de que um export sempre gera um import associado

Eu importei como está no vídeo, cheguei a retirar os espaços entre os imports e botar o ";", mas o erro continua

SyntaxError: Cannot use import statement outside a module ←[90m at Module.compile (internal/modules/cjs/loader.js:892:18)←[39m ←[90m at Object.Module.extensions..js (internal/modules/cjs/loader.js:973:10)←[39m ←[90m at Module.load (internal/modules/cjs/loader.js:812:32)←[39m ←[90m at Function.Module.load (internal/modules/cjs/loader.js:724:14)←[39m ←[90m at Function.Module.runMain (internal/modules/cjs/loader.js:1025:10)←[39m ←[90m at internal/main/runmain_module.js:17:11←[39m PS C:\Alura\poo-javascript> node .\index.js

Boa noite Bernardo, tudo bem ?

Se puder compartilhar o código que escreveu, fica melhor para poder tentar ajudar. Mas pelo que pude perceber, faltou o "{ }" no comando import, ou seja, em volta do nome da classe Cliente, precisa colocar as chaves. Lembrando também que o comando import fica sempre na página index.js, como no exemplo da aula.

import {Cliente} from "./Cliente.js";

Lembre-se também de informar nas classes o comando export na frente do nome da classe.

export class Cliente

Espero ter ajudado.

Abraço e bons estudos!

No index.js

import {Cliente} from './Cliente.js'; import {ContaCorrente} from './ContaCorrente.js';

No ContaCorrente.js

export class ContaCorrente { ... }

No Cliente.js

export class Cliente{...}

Botei tudo no github https://github.com/bernaRocha/alura_poo-javascript

solução!

Consegui resolver sozinho minha dúvida, posso ajudar quem estiver com a mesma dúvida, esse erro ocorreu devido meu node estar naquele momento na versão 12 e a importação de módulos ser aceita a partir da versão 13 do node.

Com o comando node -v vocês pdoem ver a versão do node sendo usada no momento.