IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Angular Discussion :

Eviter la recompilation de toute l'application à chaque fois


Sujet :

Angular

  1. #1
    Nouveau membre du Club
    Inscrit en
    Mars 2009
    Messages
    44
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 44
    Points : 38
    Points
    38
    Par défaut Eviter la recompilation de toute l'application à chaque fois
    Bonjour à tous,

    Je viens de me lancer sur notre nouveau gros projet en interne - Angular pour le Front/BO + NodeJS pour l'API.
    Je suis très loin de maîtriser Angular mais j'ai vraiment du mal à m'adapter à cause d'une chose.

    En effet, notre application est assez conséquente, et du coup, à chaque fois que je modifie un fichier (html, scss, ts) et que je sauvegarde (je suis sous WebStorm) - Webpack recompile énormément de fichiers... afin de m'afficher ma modification sur mon navigateur. (c'est parfait)

    Sauf que... c'est ultra long... j'ai 10s de compilation à chaque save... vous savez s'il y a une solution pour que webpack ne recompile que le component sur lequel je travaille, ou est ce tout simplement le fonctionnement normal.

    D'avance merci.

  2. #2
    Membre éprouvé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2019
    Messages
    707
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2019
    Messages : 707
    Points : 1 030
    Points
    1 030
    Par défaut
    de puis angular 6-7 je ne sais plus, ng serve compile que ce qui a été modifié !
    bizarre....

  3. #3
    Membre averti Avatar de RPGamer
    Homme Profil pro
    Ingénieur en systèmes embarqués
    Inscrit en
    Mars 2010
    Messages
    168
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur en systèmes embarqués

    Informations forums :
    Inscription : Mars 2010
    Messages : 168
    Points : 395
    Points
    395
    Par défaut
    Manifestement ton projet est basé sur une architecture hautement couplée ce qui fait que l'ensemble du projet ou l'ensemble d'un module important du projet doit être recompilé à chaque changement. Vérifie que tu respectes bien le style guide Angular en séparant bien tes modules et en suivant le SRP.

    La prochaine version d'Angular (9.0.0) utilisera le compilateur Ivy, qui supporte la compilation incrémentale, ce qui aura pour conséquence une diminution significative des temps de compilation et une grosse augmentation des performances côté runtime.

  4. #4
    Expert éminent sénior
    Avatar de Marco46
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2005
    Messages
    4 413
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2005
    Messages : 4 413
    Points : 19 609
    Points
    19 609
    Par défaut
    Ça n'a rien à voir avec Angular c'est lié à webpack.

    Si tu as un webpack dans une version récente correctement configuré il ne doit te recompiler que les sources qui ont changé.

    Il faut mettre les mains dans le cambouis pour mettre à jour tes dépendances de dev.

    Pour ce qui est de Ivy c'est la brique qui sert à compiler le DOM au runtime dans le contexte du cycle de vie de l'application. Ça n'a aucun rapport avec son problème.
    Un problème avec Git ? Essayez la FAQ, sinon posez votre question sur le forum.



    "Toute personne croyant qu'une croissance exponentielle peut durer indéfiniment dans un monde fini est soit un fou, soit un économiste."
    Kenneth E. Boulding

    "Les richesses naturelles sont inépuisables, car, sans cela, nous ne les obtiendrions pas gratuitement. Ne pouvant être ni multipliées ni épuisées, elles ne sont pas l’objet des sciences économiques."
    Jean-Baptiste Say, Traité d'économie politique, 1803.

    "/home/earth is 102% full ... please delete anyone you can."
    Inconnu

  5. #5
    Membre à l'essai
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2019
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2019
    Messages : 15
    Points : 19
    Points
    19
    Par défaut
    Si c'est un problème de compilation de webpack 4, essai de modifier l'option "mode" dans son fichier de configuration (généralement "webpack.config.js") : https://webpack.js.org/configuration/mode/
    En forçant le mode "development", la compilation sera grandement accélérée.

    Tu peux aussi jouer sur la configuration de l'option "devtool" pour spécifier une compilation plus rapide des source maps et même les désactiver: https://webpack.js.org/configuration/devtool/

  6. #6
    Membre averti Avatar de RPGamer
    Homme Profil pro
    Ingénieur en systèmes embarqués
    Inscrit en
    Mars 2010
    Messages
    168
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur en systèmes embarqués

    Informations forums :
    Inscription : Mars 2010
    Messages : 168
    Points : 395
    Points
    395
    Par défaut
    La recompilation dépend du couplage entre les modules. Si tu modifie un module qui est une dépendance de toute l'app, elle sera recompilée entièrement. Par défaut, webpack ne recompile pas toute l'app mais seulement ce qui est nécessaire.
    Avec Ivy les temps de compilation sont sensiblement réduits, ce qui va complètement dans le sens de la question.

Discussions similaires

  1. Réponses: 6
    Dernier message: 01/11/2010, 21h42
  2. Réponses: 0
    Dernier message: 19/01/2009, 10h09
  3. le makefile refait tout à chaque fois?!
    Par jula dans le forum Systèmes de compilation
    Réponses: 2
    Dernier message: 25/04/2006, 17h08
  4. [ActionPerformed] Fermer toute l'application
    Par Invité dans le forum AWT/Swing
    Réponses: 13
    Dernier message: 14/03/2006, 11h53
  5. Récupérer les composants visuels de toute l'application
    Par sessime dans le forum Composants VCL
    Réponses: 4
    Dernier message: 27/02/2006, 09h18

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo