Problème avec "dart run build_runner build lib"

Salut la compagnie !

Je reviens à mes applicatifs après 2 mois passés sur un autre sujet et je découvre une nouvelle commande, mais elle me renvoie cette erreur :

Failed to build build_runner:build_runner:
/C:/Users/.../AppData/Local/Pub/Cache/hosted/pub.dev/watcher-1.0.2/lib/src/constructable_file_system_event.dart:7:57: Error: The class 'FileSystemEvent' can't be extended, implemented, or mixed in outside of its library because it's a sealed class.
abstract class _ConstructableFileSystemEvent implements FileSystemEvent {

Pour info j’utilise la version 3 de Dart (obligé pour certaines extensions)

Une bonne âme aurait-elle une petite idée ?

Merci !
Mickaël.

Probable que ce soit le Dart3 qui coince lorsqu’on lit la page github : en préparation…

C’est pourquoi j’ai ajouté ma table à main.reflectable.dart, je peux désormais lire les datas de la tables, mais l’update bloque (sans aucunes erreurs notables)

Je reviens un peu sur le sujet, quelqu’un aurait-il utilisé l’API avec Dart3 (avec succès), je préférerais que la boulette vienne de moi !

Si tu parles de Directus api manager, alors oui je te confirme qu’il marche sans problème avec Dart 3. Je m’en sers sur l’app de Purple Giraffe et la génération fonctionne.
POur ce qui est de ton erreur, j’avoue ne pas savoir d’où ça peut venir :frowning:

Ok, merci du retour sur Dart3 déjà, c’est un début. Mais oui, c’est vraiment étrange, mon projet se trouve totalement bloqué par cette commande !

Salut, je viens juste de rencontrer ce problème, suite au fait que j’ai migré mon applicatif de DART v.2.19.0 vers la v3.13.6, et depuis je ne peux plus non plus utiliser ma commande « flutter pub run build_runner build » (qui est d’ailleurs deprecated dorénavant, donc je la lance en « dart run build_runner build »). Pour mon cas, je l’utilisais déjà auparavant pour builder mes objets JSON, et ça marchait très bien. Il semble donc que ce soit DART3 qui pose problème effectivement.

Pour ma part, j’étais branché sur la v2.3.3 (qui n’était pas forcément DART 3 compatible) de la lib build_runner, et je viens de me mettre sur la v2.4.6 (la dernière) mais ça n’a rien changé j’avais toujours mon problème.

Après avoir remis en question les versions de build_runner, je suis finalement allé voir quelle version de DART les devs utilisent dans leur repo github et jai vu d’après le pubspec.yml qu’ils se branchent sur la v3.0.0 de DART exactement (https://github.com/dart-lang/build/blob/master/build_runner/pubspec.yaml). Bon, apparemment toutes les releases des v3.0.0-x de DART semblent être des betas, donc j’ai choisi la v3.1.0. Seulement, il faut un flutter compatible avec cette version → c’est la v3.10.1 (Flutter SDK archive | Flutter), donc j’ai récupéré cette version et ma commande refonctionne de nouveau. Je ne sais pas à partir de quelle version de flutter/dart il y a la regression mais en tout cas avec cette version ça marche, si tu as besoin d’une version supérieur il faut soit tester les versions sup. (par dichotomie ?), soit corriger toi même (et pull request) soit créer une issue sur github. Et au pire des cas, je pense que l’on peut même modifier le code du fichier dart qui est interprété sur ta machine, car dans le log il donne l’endroit de l’exception, donc du code.

Donc conclusion, pour l’utilisation de versions build_runner > 2.3.3 (voire en dessous) et <= 2.4.6, il faut utiliser au moins DART v.3.1.0 (Flutter v.3.10.1) (versions supérieur à tester mais pas par moi :slight_smile:).

Merci pour retour :+1:

Bonjour à toutes à tous,

Je reviens sur un projet quelques mois après et je me demande si le problème persiste ou si la migration vers les dernières versions de Dart est devenue possible.

edit : en fait mon IDE est passé à la 3.13.6 et cela ne fonctionne plus…

/C:/Users/user/AppData/Local/Pub/Cache/hosted/pub.dev/watcher-1.0.2/lib/src/constructable_file_system_event.dart:7:57: Error: The class 'FileSystemEvent' can't be extended, implemented, or mixed in outside of its library because it's a sealed class.
abstract class _ConstructableFileSystemEvent implements FileSystemEvent {

Merci !