Después de excavar varias horas, decidimos hacer una pregunta sobre SO, con la esperanza de que alguien más pudiera ayudar con el siguiente problema.
- Para una de nuestras aplicaciones web, utilizamos el marco Onsen UI js con su biblioteca de soporte React
- Cuando intentamos representar la aplicación en nuestros entornos de desarrollo, todo parece funcionar correctamente, pero cuando lo probamos en nuestro entorno de preparación, algunos componentes se comportan de manera diferente
Lo que hemos encontrado hasta ahora : parece que en nuestro entorno de ensayo, algunos atributos HTML se configuran de manera diferente en el DOM:
|----------------|---------------|--------------| | HTML attribute | DEV ENV | STAGING ENV | |----------------|---------------|--------------| | fixed-content | fixed-content | fixedcontent | |----------------|---------------|--------------| | active-index | active-index | index | |----------------|---------------|--------------|
Debido a esto, el marco Onsen no puede encontrar los atributos en los elementos HTML y se comporta de manera diferente independientemente de que:
- Usamos el mismo navegador (marcado con Chrome, Edge, Firefox)
- Tenemos el mismo código JS cargado en ambos envs
Qué diferencias hay entre envs:
- Los archivos JS se almacenan localmente en nuestras máquinas de desarrollo y en S3 para nuestro entorno de preparación.
- Usamos una conexión encriptada en nuestro entorno de preparación
- El encabezado Accept-Encoding está
gzip, deflate
en local ygzip, deflate, br
en etapas - Tal vez algo más que buscar?
¿Alguien sabe qué demonios está pasando aquí?
javascript
html
reactjs
onsen-ui
Mihai Matei
fuente
fuente
data-*
?Respuestas:
De hecho, encontramos el problema y la solución es bastante simple, aunque nos llevó horas encontrarlo.
En nuestros entornos de puesta en escena / producción, utilizamos el complemento babel
transform-react-remove-prop-types
para eliminar los tipos de accesorios React.Desafortunadamente, la biblioteca de soporte Onsen UI React se basa en los tipos de utilería definidos de sus componentes, por lo que cuando se despojaron, la biblioteca comenzó a comportarse de manera diferente.
Lo que hicimos:
0.3.3
para poder usar laignoreFilenames
opciónOmitimos el archivo que contiene el código de la biblioteca Onsen UI React
fuente