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

[OFF] Lodash use Typescript SystemJS Not Found

Fala galera, tranquilo? Costumo utilizar Lodash em minhas aplicações e por esse motivo estou tentando integrar o mesmo com TypeScript (2.3.2) . Teoricamente seria feito da mesma forma que o JQuery foi incluído ao projeto.

1º TSD: npm install @types/lodash@4.14.120 --save-dev

2º A implementação em si.

import { Negociacao } from './Negociacao';
import * as _ from 'lodash';

export class Negociacoes
{
    private _negociacoes: Array<Negociacao> = [];
    // priate _negociacoes: Negociacao[];

    adiciona(negociacao: Negociacao) : void
    {
        this._negociacoes.push(negociacao);
    }

    paraArray() : Negociacao[]
    {
        return _.clone(this._negociacoes);
    }
}

O VSCode reconhece o Lodash e o autocomplete é habilitado e fonte é compilado normalmente pelo compilador do TypeScript, o problema surge quando o projeto é carregado no navegador, apresentando a seguinte mensagem no console:

Error: (SystemJS) XHR error (404 Not Found) loading http://localhost:3000/lodash.js Error: XHR error (404 Not Found) loading http://localhost:3000/lodash.js Error loading http://localhost:3000/lodash.js as "lodash" from http://localhost:3000/js/models/Negociacoes.js

Pelo que pesquisei o é problema esta no SystemJS que parece não estar conseguindo mapear o lodash.

Enfim, não consegui encontrar nenhuma solução, caso alguém saiba com resolver e possa me esclarecer agradeço.

Links pertinentes:

Vlw.

5 respostas

Oi Matheus, tudo bem? Você tem esse projeto no GitHub ou coisa assim pra que eu possa ver as configurações do projeto de perto e testar?

Fala ae, esse projeto está no bitbucket: https://bitbucket.org/matteusmachhado/estudando-typescript

Aguardando retorno. Vlw

Matheus, você não tem o .js do lodash no seu projeto? Lembra, o @types é só um mapeamento pro que existe na biblioteca, você ainda precisa do .js original, o types é só pra autocomplete basicamente.

O jQuery está na pasta lib, mas não achei o lodash lá.

Wanderson, tranquilo? na verdade tenho sim apenas esqueci de adiciona-lo ao versionamento, mas o problema ainda persiste.

PS: Fiz um commit/push com lodash.

Aguardando retorno. Vlw

solução!

Oi Mateus, encontrei o problema, que na verdade não tem nada haver com o loadsh.

O que aconteceu pra mim? o app.js não tava sendo gerado a partir do app.ts e isso acontece por que há uma diferença nos nomes dos arquivos.

O negociacao.ts deveria se chamar Negociacao.ts (N maiúsculo), isso gera problemas de import no Negociacoes.ts, depois disso, você precisa arrumar o index.ts na pasta models por que essa alteração gera problemas no NegociacaoService.ts

Depois disso, ele vai gerar o app.js certinho e vai conseguir fazer o loading normalmente. Aqui funcionou com esses pequenos ajustes, verifica ai por favor.