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

Erro no SystemJs

Olá Bom Dia estou com um mega problema, estou executando o meu código através do lite-server, e tudo mais, porém quando carrega no navegador, o meu arquivo de entrada principal dá um erro estranho... Dai se eu apago o arquivo, e crio outro com nome diferente, funciona, mas depois volta esse erro...

Error: (SystemJS) Module http://localhost:3000/js/main.js interpreted as global module format, but called System.register.
    Error: Module http://localhost:3000/js/main.js interpreted as global module format, but called System.register.

Porque acontece esse erro? O que eu estou fazendo de errado?

A única coisa que tem dentro do meu main.ts é

import { AppController } from './controllers/app.controller';
const app = new AppController();
3 respostas

Olá! Realmente é uma mensagem estranha! Quando você diz que apaga o arquivo e volta, é porque você esta apagando o arquivo .js e não o ts. Lembre-se que arquivos .ts são compilados e transformados em arquivos .js. São esses arquivos .js que são carregados pelo navegador.

A mensagem parece indicar que o arquivo compilado de ts para js não segue o padrão esperado pelo System.js. Nesse sentido, peço que verifique seu arquivo tsconfig.json!

{
    "compilerOptions": {
        "target": "es6",
        "outDir": "app/js",
        "noEmitOnError": true, 
        "noImplicitAny": true,
        "removeComments": true,
        "module": "system"
    },
    "include": [
        "app/ts/**/*"
    ]
}

No seu arquivo tem essa propriedade "module": "system"? Ela é importante para que o módulo seja carregado pelo Systemjs, pois ele adequa os arquivos compilados. Verifica para a gente?

solução!

Oi Flávio, Boa Tarde!

Quando eu digo que apago o arquivo, eu me refiro justamente sobre o TS mesmo. E sim, o meu tsconfig está configurado exatamente igual ao das aulas.

Eu refiz alguns testes e acho que encontrei o problema. Pode ser que sim, ou não, mas acho que isso tem a ver com a nomenclatura dos arquivos.

Antes eu tinha renomeado meu arquivo como app.controller.ts (para tentar seguir um padrãozinho do angular como os componentes e tudo mais) após eu renomear o arquivo para AppController.ts, o erro parou!

Será que pode ter sido isso?

Vlw

Eu não tenho certeza, mas as chances são grandes porque o System.js é bem chatinho e se você mudar uma vírgula ele dá pane.