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

Outils Discussion :

Installation des dépendances


Sujet :

Outils

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20
    Points : 18
    Points
    18
    Par défaut Installation des dépendances
    Bonjour,

    J'ai un grand nombre de messages de ce type
    npm WARN @atlaskit/flag@6.1.0 requires a peer of react@^15.3.2 but none is installed. You must install peer dependencies yourself.
    npm WARN @atlaskit/icon@7.1.0 requires a peer of react@^15.3.2 but none is installed. You must install peer dependencies yourself.
    Mais je ne parviens pas à résoudre ce problème
    # npm install react@15.3.2
    npm WARN @atlaskit/analytics-next@3.0.7 requires a peer of react@^16.4.0 but none is installed. You must install peer dependencies yourself.
    npm WARN @atlaskit/avatar@14.0.10 requires a peer of react@^16.4.0 but none is installed. You must install peer dependencies yourself.
    npm WARN @atlaskit/theme@6.0.3 requires a peer of react@^16.4.0 but none is installed. You must install peer dependencies yourself.
    npm WARN @atlaskit/tooltip@12.1.0 requires a peer of react@^16.4.0 but none is installed. You must install peer dependencies yourself.
    ...
    I me demande du react@16.4.0

    Mais quand j'essaie de l'installer, il me demande d'autres versions
    # npm install react@16.4.0
    npm WARN @atlaskit/flag@6.1.0 requires a peer of react@^15.3.2 but none is installed. You must install peer dependencies yourself.
    npm WARN @atlaskit/icon@7.1.0 requires a peer of react@^15.3.2 but none is installed. You must install peer dependencies yourself.
    npm WARN @atlaskit/theme@2.4.1 requires a peer of react@15.6.0 - 16.2.0 but none is installed. You must install peer dependencies yourself.
    N'y aurait-il pas un moyen de résoudre les dépendances facilement ?

  2. #2
    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
    N'y aurait-il pas un moyen de résoudre les dépendances facilement ?
    Non il faut creuser. Les problèmes de dépendances c'est jamais vraiment très compliqué mais ça peut être fastidieux.

    Bref, déjà les peerDependencies ça sert à quoi ? Plutôt que d'exprimer une relation de dépendance directe comme avec les dependencies ça sert à dire que la dépendance doit s'exécuter "à côté" d'une autre dépendance.

    Lors de l'exécution de npm install les dépendances directes sont installées automatiquement, mais pas les peerDependencies, il faut manuellement les ajouter à ton propre package.json.

    Illustration :

    Dans ton projet tu installes une dépendance toto en version 1.2.0 qui a en dependencies le package titi en version 3.4.0 et le package tata en version 2.0.1.

    Dans ton package.json tu déclares seulement la dépendance de ton projet à toto en version 1.2.0 :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    {
      "name": "mon-projet",
      "version": "1.0.0",
      "dependencies": {
        "toto": "1.2.0"
      }
    }
    Suite à ton npm install tu te retrouves avec le graphe suivant :

    ├── toto@1.2.0
        ├── titi@3.4.0
        └── tata@2.0.1
    Les packages titi et tata sont installés automatiquement par npm car se sont des dépendances directes de toto.


    Maintenant imaginons que dans le package toto, le package tata ne soit pas déclaré en tant que dependencies mais en tant que peerDependencies.

    Dans ton package.json tu dois déclarer directement la dépendance de ton projet au package tata qui est une peerDependencies du package titi :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    {
      "name": "mon-projet",
      "version": "1.0.0",
      "dependencies": {
        "toto": "1.2.0",
        "tata": "2.0.1"
      }
    }
    Et suite à un npm install sur ton projet tu obtiendras le graphe suivant :

    ├── toto@1.2.0
        └── titi@3.4.0
    └── tata@2.0.1
    Ton problème :

    Tu l'auras compris, dans l'exemple que j'ai pris tata c'est react pour toi.

    Tu as plein de dépendances à ton projet qui ont elles-mêmes react en peerDependencies. Tu dois donc déclarer react dans tes dependencies "à côté" des autres.

    Sauf que manifestement, tu as des dépendances qui demandent des versions différentes de react (15 et 16).

    C'est ça ton problème, tu ne peux avoir qu'une seule version de react pour tout ton projet. Cela signifie que les versions de tes dépendances sont incohérentes.

    La seule manière de fixer ton problème c'est de déclarer en dependencies des versions qui demandent toutes la même version de react.
    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

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20
    Points : 18
    Points
    18
    Par défaut
    Merci Marco pour ta réponse très précise et le temps que tu as passé.

    Je vais relire ton message et approfondir ce point.
    Il est vrai que mon but premier est l'installation d'une application, en loccurence Jitsi et c'est ainsi que je me suis retrouvé face à ce problème.

    Est-ce finalement au developpeur de mieux gérer ces dépendances ? Ou puis-je corriger moi même cela ?

  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
    Tu peux forcer des versions de dépendances en bidouillant mais c'est très chiant et rien dit que ça va fonctionner correctement. Le problème étant entre 2 versions majeures, il est possible que certains composants n'aient pas implémenté les breaking changes de la montée de version de react de 15 vers 16, donc bonne probabilité d'avoir des bugs.

    C'est complètement au(x) développeur(s) de gérer ce problème, clairement les dépendances de leur application sont dans un état incohérent c'est anormal et ça mériterait l'ouverture d'un ticket de bug.
    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

Discussions similaires

  1. [EJB3 Entity] Probleme injection de dépendance
    Par manu11 dans le forum Java EE
    Réponses: 1
    Dernier message: 17/11/2009, 02h51
  2. Problèeme de dépendances circulaires entre EJBs et JBoss
    Par developpeur2008 dans le forum Wildfly/JBoss
    Réponses: 1
    Dernier message: 08/06/2008, 20h03
  3. [MAVEN 2]Probleme dépendances
    Par marcxa44 dans le forum Maven
    Réponses: 1
    Dernier message: 26/07/2007, 15h31
  4. [plugin] Probleme de dépendances
    Par cotoxin dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 26/07/2007, 10h26
  5. [Kylix] Probleme d'execution de programmes...
    Par yopziggy dans le forum EDI
    Réponses: 19
    Dernier message: 03/05/2002, 14h50

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