stackblitz / bolt.new

Prompt, run, edit, and deploy full-stack web applications
https://bolt.new
MIT License
8.97k stars 3.55k forks source link

NotFoundError dans insertBefore sur Bolt : erreur de manipulation du DOM pour application mobile #2301

Closed Amilcard closed 1 day ago

Amilcard commented 2 weeks ago

Describe the bug

Description du problème

Je rencontre une erreur récurrente NotFoundError liée à insertBefore lors du développement d'une application mobile sur l'environnement Bolt. Cette erreur semble être causée par des manipulations DOM effectuées en interne par Bolt ou une de ses dépendances, et bloque l’exécution de plusieurs fonctionnalités.

Message d’erreur

Link to the Bolt URL that caused the error

https://bolt.new/~/sb1-ahta4q

Steps to reproduce

  1. Connectez-vous à l'environnement de développement Bolt.
  2. Créez ou ouvrez un projet d’application mobile. InKlusif Activity Discovery Platform
  3. Ajoutez un composant nécessitant une manipulation DOM impliquant l'insertion de nœuds, comme l’ajout d’un élément à un conteneur.
  4. Testez l'application en mode aperçu.
  5. Observez le message d'erreur NotFoundError dans la console, indiquant une erreur avec insertBefore.

NotFoundError : échec de l'exécution de « insertBefore » sur « Node » : le nœud avant lequel le nouveau nœud doit être inséré n'est pas un enfant de ce nœud. chez ro (https://bolt.new/assets/components-B64jh5hJ.js:24:25478) chez moi (https://bolt.new/assets/components-B64jh5hJ.js:24:30669) à kc (https://bolt.new/assets/components-B64jh5hJ.js:24:27717) chez Ne (https://bolt.new/assets/components-B64jh5hJ.js:24:27401) à kc (https://bolt.new/assets/components-B64jh5hJ.js:24:27709) chez Ne (https://bolt.new/assets/components-B64jh5hJ.js:24:27401) à kc (https://bolt.new/assets/components-B64jh5hJ.js:24:27709) chez Ne (https://bolt.new/assets/components-B64jh5hJ.js:24:27401) à kc (https://bolt.new/assets/components-B64jh5hJ.js:24:27709) chez Ne (https://bolt.new/assets/components-B64jh5hJ.js:24:27401)

Ce comportement se produit de manière récurrente dans plusieurs parties de l’application, notamment dans :

Expected behavior

Je m'attendais à ce que les nœuds DOM soient insérés correctement sans provoquer d'erreurs NotFoundError. Plus précisément, j'attendais :

Screen Recording / Screenshot

No response

Platform

Browser name = Chrome
Full version = 130.0.0.0
Major version = 130
navigator.appName = Netscape
navigator.userAgent = Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36
performance.memory = {
  "totalJSHeapSize": 88695731,
  "usedJSHeapSize": 86685543,
  "jsHeapSizeLimit": 2160066560
}
Username = Inklusif
Chat ID = 591c8fe86ead

Additional context

e problème NotFoundError semble provenir de l’utilisation de insertBefore dans les scripts ou dépendances internes de Bolt. Voici des informations supplémentaires sur le contexte et les tentatives de résolution :

L'erreur affecte plusieurs sections de l’application, rendant difficile la manipulation de nœuds dans le DOM et perturbant les fonctionnalités d’interface. Cela pourrait être lié à une bibliothèque ou un script que Bolt utilise en interne, qui utilise insertBefore sans vérifier la validité des nœuds parent/enfant.

Votre aide pour identifier et corriger ce problème est essentielle pour garantir le bon fonctionnement de notre application.

Amilcard commented 2 weeks ago

Nous vous demandons donc de bien vouloir :

  1. Vérifier le code interne de Bolt pour identifier les dépendances ou composants qui utilisent insertBefore sans vérification adéquate du referenceNode.
  2. Fournir une solution ou un correctif pour éviter que cette erreur NotFoundError ne soit déclenchée lors des manipulations DOM.
  3. Recommander toute configuration ou pratique spécifique qui pourrait nous permettre de contourner ce problème de façon plus robuste si un correctif n'est pas immédiatement possible.

Conclusion

Cette erreur est bloquante pour notre développement, et une résolution serait essentielle pour que nous puissions continuer à travailler sur l'application dans de bonnes conditions. Nous restons à votre disposition pour fournir toute information supplémentaire ou pour tester toute solution proposée.

Contexte et Importance

Cette erreur se manifeste de manière persistante, même après plusieurs tentatives de contournement. Elle bloque l’intégration de certaines fonctionnalités essentielles dans notre application, ce qui rend difficile la progression de notre développement. Cette erreur apparaît particulièrement lors de manipulations DOM associées aux fonctionnalités suivantes :

Solutions de Contournement Déjà Tentées

Pour essayer de résoudre cette erreur, nous avons mis en œuvre les solutions suivantes :

  1. Redéfinition de insertBefore globalement pour remplacer les appels incorrects par appendChild.
  2. Utilisation de MutationObserver pour surveiller et corriger les insertions de nœuds dans le DOM.
  3. Interception de l’erreur avec window.onerror pour masquer temporairement l'erreur et permettre une exécution partielle du code.

Malheureusement, aucune de ces solutions de contournement n’a pu résoudre le problème de manière définitive, et l’erreur continue de se produire dans plusieurs parties de l’application, limitant nos capacités de développement.

Demande d’Assistance

Merci pour votre aide.

Cordialement,

[Votre Nom]

AriPerkkio commented 1 day ago

Hey @Amilcard, thanks for the report!

This issue is tracked on https://github.com/stackblitz/bolt.new/issues/2556.