Olá amiga,
Não tenho certeza (de novo 😄) se sou eu fazendo algo estúpido ou é um bug.
Eu tenho dois componentes chamados "view" e decorados com o atributo [<ReactComponent>]
. Cada um deles em um módulo diferente. Ter um código como este resulta em erro durante a construção da fábula:
ERROR in ./.fable-build/View.js
Module build failed (from C:/Dzoukr/Personal/dzoukr/SAFEr.Template/src/node_modules/babel-loader/lib/index.js):
SyntaxError: C:\Dzoukr\Personal\dzoukr\SAFEr.Template\src\src\SAFEr.App.Client\.fable-build\View.js: Identifier 'View' has already been declared (12:16)
O engraçado é que, quando eu os chamo de "Visualização" (com V maiúsculo), isso funciona.
Suspeito que seja um conflito entre os plug-ins e a resolução de colisão de nomes do Fable.
cc @alfonsogarciacaro
Quando você diz módulos diferentes, quer dizer arquivos diferentes, certo? Quando o nome da função começa com minúsculas, o plug-in converte em maiúsculas para funcionar melhor com as ferramentas React. Não tenho certeza em que ponto exatamente, mas presumo que isso esteja em conflito com a resolução de colisão de nomes do Fable e faça com que duas referências tenham o mesmo nome. Existem duas maneiras de resolver isso:
Caso você esteja se perguntando, eu prefiro a segunda opção 😉
@Dzoukr Nah, este é um bug na geração de código do plugin: smile:
@alfonsogarciacaro Emitir um aviso é provavelmente o caminho a percorrer, vou retrabalhar os plugins do compilador antes de começar a trabalhar na documentação e advertências. Em primeiro lugar, estou tentando descobrir por que os registros quebram no React tool ... 😓
HA! Finalmente algo 😄
Sim, está em um arquivo diferente, mas não há problema, posso nomeá-los sozinho (e concordo com @alfonsogarciacaro que regra provavelmente bem documentada com aviso do compilador seria mais fácil e mais limpa para você do que algum tipo de magia negra).
Olá Romano, o último Feliz v1.22 foi enviado para o nuget e não colocará mais o nome da função em maiúsculas automaticamente. Em vez disso, ele emitirá um aviso do compilador que pede gentilmente que você faça você mesmo, o que permite que o Fable resolva as colisões de nomenclatura por conta própria: smile:
Muito obrigado, cara!
Comentários muito úteis
Olá Romano, o último Feliz v1.22 foi enviado para o nuget e não colocará mais o nome da função em maiúsculas automaticamente. Em vez disso, ele emitirá um aviso do compilador que pede gentilmente que você faça você mesmo, o que permite que o Fable resolva as colisões de nomenclatura por conta própria: smile: