BrasilAPI / cep-promise

Busca por CEP integrado diretamente aos serviços dos Correios, ViaCEP e outros (Node.js e Browser)
MIT License
2.88k stars 316 forks source link

Erro ao utilizar no Angular 6 #117

Closed CarolPC closed 6 years ago

CarolPC commented 6 years ago

Fiz o npm install e estou utilizando o Angular 6.

Quando vou subir o projeto, já tendo importado o package em um componente eu recebo 2 erros no console.

screen shot 2018-06-08 at 12 27 26
lucianopf commented 6 years ago

Eitcha maravilha... parece que temos uma dependência fujona aí! hehehe Amanhã vou tomar um tempinho pra resolver isso @CarolPC , valeu!! =D

lucianopf commented 6 years ago

Então @CarolPC algo bem bizarro ta acontecendo! 🤔

O problema não tá diretamente no cep-promise mas nas dependências, e aparentemente elas tão tendo problemas em dar require nos módulos padrões do Node como:

Teria como vc me mandar as specs do seu ambiente pfv pra tentar reproduzir melhor?

CarolPC commented 6 years ago

Runtime: node 9.6.1 OS: macOS Sierra Typescript: 2.7.2

E a falha acontece quando eu rodo o ng serve no Angular.

lucianopf commented 6 years ago

Sumonando nosso mestre em TS pra dar uma luz aqui! hehehe @claytonsilva

claytonsilva commented 6 years ago

@lucianopf segura que vou ver de meia noite as seis, segunda feira é dia lindo :D

claytonsilva commented 6 years ago

coloca assign pra mim @lucianopf

lucianopf commented 6 years ago

Bem que eu queria mas o GH não ta deixando =/

screen shot 2018-06-11 at 3 49 54 pm

screen shot 2018-06-11 at 3 50 54 pm

claytonsilva commented 6 years ago

ahueaeahueahueahue pode deixar voce sendo culpado. to olhando aqui

claytonsilva commented 6 years ago

@CarolPC pra fechar o cerco e conseguir reproduzir legal aqui, qual a versão do angular-cli que está usando?

CarolPC commented 6 years ago

@claytonsilva estou usando a 6.0.2

thiamsantos commented 6 years ago

@CarolPC eu acho que o problema está acontecendo porque o angular está tentando importar a versão do cep-promise usado no node.

Eu consegui resolver aqui importando diretamente o bundle para o browser:

import * as cep from 'cep-promise/dist/cep-promise-browser.js';

cep('05010000')
  .then(console.log);

Você pode também fazer um alias do cep-promise apontando para o bundle do browser. É só adicionar essa opção ao seu tsconfig.json dentro de compilerOptions.

{
  "compilerOptions": {
    "baseUrl": "./",
    "paths": {
      "cep-promise": ["node_modules/cep-promise/dist/cep-promise-browser.js"]
    }
  }
}

Eu testei em projeto novo gerado pelo angular-cli. O repositório pode ser encontrado aqui.

claytonsilva commented 6 years ago

indo direto pelo angular-cli dá realmente o resultado relatado e inclusive já levantaram a bola desse problema:

https://github.com/angular/angular-cli/issues/10698

ele já está aberto lá, a solução do @thiamsantos é a mais prudente por enquanto até eles resolverem

CarolPC commented 6 years ago

@thiamsantos @claytonsilva muito obrigada pela ajuda! Importando diretamente o bundle para o browser funcionou!

lucianopf commented 6 years ago

Dado que isso infelizmente é um problema do Angular (TS ❤️ ) vou fechar a issue =D