2
respostas

Não consigo importar os módulos

Tenho tentado fazer a importação dos módulos mas não funciona. Estou usando no navegador pois no powershell ele aponta erro na variável nome.

Porém, após criação dos módulos, não consegui fazer funcionar. Mesmo após criação do package.json, a mensagem 'Uncaught SyntaxError: Cannot use import statement outside a module' continua aparencendo.

$ node -v v12.16.3

{
    "name": "bytebank",
    "version": "1.0.0",
    "description": "teste alura",
    "main": "index.js",
    "scripts": {
        "test": "echo \"Error: no test specified\" && exit 1"
    },
    "author": "diego",
    "license": "ISC",
    "type": "module"
}
import { Cliente } from '../Cliente';
import { ContaCorrente } from '../ContaCorrente';


class ContaCorrente {
    agencia;
    // #saldo =0 https://github.com/tc39/proposal-class-fields#private-fields
    _saldo = 0;

    sacar(valor) {
        if (this._saldo >= valor) {
            this._saldo -= valor;
            return valor;
        }
    }

    depositar(valor) {
        if (valor <= 0) {
            return;
        }
        this._saldo += valor;
    }
}

const cliente1 = new Cliente();
cliente1.nome = "Ricardo";
cliente1.cpf = 11122233309;

const cliente2 = new Cliente();
cliente2.nome = "Alice";
cliente2.cpf = 88822233309;


const contaCorrenteRicardo = new ContaCorrente();
contaCorrenteRicardo.agencia = 1001;

contaCorrenteRicardo.depositar(-100);
contaCorrenteRicardo.depositar(100);
contaCorrenteRicardo.depositar(100);

const valorSacado = contaCorrenteRicardo.sacar(50);
console.log(valorSacado);

console.log(contaCorrenteRicardo);
export class ContaCorrente {
    agencia;
    // #saldo =0 https://github.com/tc39/proposal-class-fields#private-fields
    _saldo = 0;

    sacar(valor) {
        if (this._saldo >= valor) {
            this._saldo -= valor;
            return valor;
        }
    }

    depositar(valor) {
        if (valor <= 0) {
            return;
        }
        this._saldo += valor;
    }
}
export class Cliente {
    nome;
    cpf;
}

a

2 respostas

Oi Diego, tudo bom? Vc precisa estar com o Node na versão 13 para usar os módulos. Pelo que eu vi vc está usando a versão 12 no seu PC

Olá professor, tudo bem e com você? Obrigado pelo retorno, Instalei a versão 14 e coloquei a extensão js nos campos imports e funcionou, tanto no terminal quanto no navegador, a única questão sobre o navegador é que tive que colocar o type = "module" dentro da tag script também. Obrigado