5 votes

Comment organiser le code dart dans un dossier web

Selon le Conventions de présentation des paquets le site web doit contenir les éléments suivants :

HTML, CSS, images, et probablement même un peu de JavaScript. Tout cela va dans le répertoire web de votre paquet. Vous êtes libre d'en organiser le contenu comme bon vous semble. Faites des folies avec des sous-répertoires si cela vous fait plaisir.

Donc mon web ressemble à quelque chose comme ceci :

web/data_access
web/model
web/ui
web/ui/navigation
etc.

Maintenant, comment puis-je gérer toutes ces déclarations d'importation. J'ai beaucoup d'instructions comme :

import '../../model/my_model.dart';
import '../../data_access/mock_dao.dart';
etc.

Je n'aime pas utiliser autant de ../ dans mes importations parce que c'est fragile et que j'ai des problèmes dès que je change quelque chose dans ma structure de dossiers.

Existe-t-il une meilleure façon d'organiser le code à l'intérieur de l'interface utilisateur ? web dossier ?

ou

Y a-t-il une autre façon de faire les importations ?

4voto

Seth Ladd Points 13589

J'ai mis presque tout le code de mon application dans la librairie, pour éviter les problèmes que vous rencontrez. Cela fonctionne même pour les composants web.

Voir ce composant de widget.dart : https://github.com/kevmoo/widget.dart/tree/master/lib/components

En général, je ne mets app.dart que dans web/, ce qui permet simplement de récupérer les bibliothèques de lib et d'initialiser l'application.

Voyez cet exemple d'une application qui récupère un paquet de pubs contenant des composants : https://github.com/sethladd/catpic-app

Voici à quoi ressemble mon fichier HTML. Remarquez l'inclusion des paquets dans le chemin :

<!DOCTYPE html>
<html>
<head>
  <title>Your life is complete</title>
  <link rel="components" href="packages/catpic/components/cat_pic.html">
  <link rel="components" href="packages/frame/components/frame.html">
  <link rel="stylesheet" href="styles.css">
</head>

3voto

MarioP Points 3626

Malheureusement, non. Il y a une demande de fonctionnalité à ce sujet, mais sa mise en œuvre peut prendre un certain temps. La meilleure façon de contourner ce problème est de regrouper plusieurs classes dans un fichier, ou plusieurs fichiers dans une bibliothèque, ce qui réduit efficacement le nombre d'instructions d'importation. Je suis allé jusqu'à faire de mon application entière une grande bibliothèque avec part of afin de ne pas avoir à gérer les déclarations d'importation. Bien que cela n'élimine pas le problème sous-jacent, cela fonctionne pour l'instant.

De plus, la refonte au lieu du simple renommage lors de la modification de la structure du dossier modifie les déclarations d'importation affectées, éliminant la douleur de les ajuster manuellement.

Les composants Web peuvent être importés dans une bibliothèque, pour être ensuite réexportés à l'aide de l'outil de gestion des composants Web. export afin de les regrouper en une seule importation.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X