J’ai quasiment fini l’intégration de react dans mon projet mais il y a toujours un mais… Je me hurte à un mur, j’ai un temps de build en développement avec ma fonction de watch est de 5 secondes ! Ce qui est immonde (je ne suis pas habitué à ce délais, ce qui me fait souvent actualiser la page avant le changement).
En faisant ma transition j’ai été obligé de passer à une structure en type=module ce qui a un intérêt limité (face à l’avancement de l’implémentation des class qui n’est pas complète). Donc j’importe react et ses composants avec :
import React from 'react'
import ReactDOM from 'react-dom'
Ce qui est la méthode parfaite avec l’environnement de production (ce que la doc ne cesse de rappeler)… Mais pour le watch (environnement de développement) ce n’est pas la méthode recommandé. En faisant import React from 'react'
, je suis obligé d’intégrer browsersify pour que les importes fonctionnent mais j’explose le chrono et je passe d’un build de 300 ms à 5 sec…
Je ne sais pas quoi faire des imports de module sans utiliser browsersify ou webpack :
import React from 'react'
Sans browsersify/webpack je me prends :
Failed to resolve module specifier "react". Relative references must start with either "/", "./", or "../".
Mais si j’utilise browsersify
mon temps de build en développement explose, il n’y a pas une alternative babel pour régler le soucis ?
L’alternative que propose la doc en version de développement est :
<script src="https://unpkg.com/react@16/umd/react.production.min.js"></script>
<script src="https://unpkg.com/react-dom@16/umd/react-dom.production.min.js"></script>
Mais ça oblige à enlever les imports à la main, je n’ai pas trouvé de module babel qui fait ça…
La doc est contradictoire, elle expose deux moyens de coder différent pour l’environnement de production / développement qui dépasse la simple changement de configuration, à les écouter il faudrait coder/importer le code différemment, je ne peux pas me permettre d’avoir deux versions de code pour prod/dev, ça n’a pas de sens.