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 :

Pas de pipe, avec une copie de node_modules d'un projet qui fonctionne


Sujet :

Angular

  1. #1
    Membre émérite
    Profil pro
    Développeur Web
    Inscrit en
    Février 2008
    Messages
    2 779
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Février 2008
    Messages : 2 779
    Par défaut Pas de pipe, avec une copie de node_modules d'un projet qui fonctionne
    Bonjour tout le monde,
    Depuis un bon moment, sur le projet GlobalWeather que je travaille à assimiler, je ne dois pas taper
    car les dernières versions de typescript posent un problème, une histoire d'ambiant context.

    Alors, après avoir effacé le node_modules, je récupère le contenu de package.json dans le projet modèle, dans le répertoire de téléchargement, vers le fichier de même nom dans la version en cours de préparation puis dans le répertoire de celle-ci je tape
    Et effectivement comme ça j'arrivais jusqu'au bout, et j'arrivais à quelque chose de fonctionnel.

    Mais ce matin, la fois suivante que je recommence le projet, voilà-t-y pas que j'ai une autre erreur, pas de propriété pipe, avec pourtant la même version de rxjs que d'habitude. Puis j'ai voulu refaire le coup de npm install, et le retour se termine par quelque chose comme
    npm WARN tar ENOENT: no such file or directory, open 'D:\Projets Visual Studio\Web\WeatherProject003\WeatherProject003\weatherClient\node_modules\.staging\regenerate-unicode-properties-aac1a270\Script\Imperial_Aramaic.js'
    npm ERR! cb() never called!

    npm ERR! This is an error with npm itself. Please report this error at:
    npm ERR! <https://npm.community>
    Oh la, alors si npm rend son tablier, on va essayer en local ...

    J'ai copié le node_modules du projet qui fonctionne vers celui qui ne fonctionne pas (après avoir effacé l'ancien bien entendu), et on me reproche encore cette histoire de pipe qui n'existe pas.

    Est-ce qu'il y a aussi autre chose que node_modules, à copier ?

    J'ai bien toujours le projet du répertoire de téléchargement qui fonctionne, et l'autre, que j'ai monté ce matin, qui ne reconnaît pas la méthode pipe.

  2. #2
    Membre très actif
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2019
    Messages
    707
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    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
    Par défaut
    gloups

    et c'est quoi l'erreur du pipe ?

    parceque le message que tu as mis ne le mentionne pas et c'est juste un warn sur une police de caractere



    il y a aussi le package.json.lock

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

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2005
    Messages : 4 419
    Par défaut
    npm install ne sert pas à installer les dépendances d'un projet elle sert à ajouter des packages (ou les mettre à jour) au package.json.

    npm update met à jour les dépendances (y compris le package-lock.json) dans la limite des règles semver du package.json.

    Pour installer les dépendances d'un projet c'est npm ci (qui signifie en fait npm clean-install) et qui se base sur le package-lock.json.

    Tu n'aurais pas tous ces problèmes en fonctionnant de cette manière.

    Il te faut donc récupérer le package.json ET le package-lock.json et exécuter un npm ci et non un npm install.

  4. #4
    Membre émérite
    Profil pro
    Développeur Web
    Inscrit en
    Février 2008
    Messages
    2 779
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Février 2008
    Messages : 2 779
    Par défaut
    Citation Envoyé par krakatoa Voir le message
    gloups

    et c'est quoi l'erreur du pipe ?

    parceque le message que tu as mis ne le mentionne pas et c'est juste un warn sur une police de caractere



    il y a aussi le package.json.lock
    ERROR in src/app/weather/weather.component.ts(77,71): error TS2339: Property 'pipe' does not exist on type 'OperatorFunction<{}, string | {}>'.

    et surtout :

    i 「wdm」: Failed to compile.

  5. #5
    Membre émérite
    Profil pro
    Développeur Web
    Inscrit en
    Février 2008
    Messages
    2 779
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Février 2008
    Messages : 2 779
    Par défaut
    Je viens de faire la génération par npm ci au lieu de npm install, en ayant pris soin d'avoir package.json et package-lock.json conformes.

    Je dois avouer que c'est nettement plus verbeux, peut-être y a-t-il des renseignements à glaner là-dedans.

    Pour autant, voilà la réponse :

    ERROR in src/app/weather/weather.component.ts(77,71): error TS2339: Property 'pipe' does not exist on type 'OperatorFunction<{}, string | {}>'.

    i 「wdm」: Failed to compile.
    Voilà la ligne 77 de weather.component.ts :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        return merge(debouncedText$, inputFocus$, clicksWithClosedPopup$).pipe(
    Je cite l'instruction complète, que dans le projet "corrigé" on trouve à la ligne 71 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
        return merge(debouncedText$, inputFocus$, clicksWithClosedPopup$).pipe(
          map(term => (term === ''
            ? this.countries
            : this.countries.filter(v => v.EnglishName.toLowerCase().indexOf
              (term.toString().toLowerCase()) > -1)).slice(0, 10))
    Je remarque qu'en tête de weather.component.ts les premières lignes sont en erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    import { Component, OnInit, ViewChild } from '@angular/core';
    import { FormGroup, FormControl, FormBuilder, Validators } from '@angular/forms';
    import { debounceTime, distinctUntilChanged, filter, merge, map } from 'rxjs/operators';
    Avec des messages d'erreur qui signifient "y a pas, allez voir ailleurs".

    Plus précisément :
    • @angular/core/core n'a aucun membre exporté Component
    • @angular/forms/forms n'a aucun membre exporté FormGroup
    • Le module rsjs/operators est introuvable


    Aux guillemets près, et avec le chemin complet pour les modules sur les deux premières lignes.
    Et pareil pour les autres objets à importer.

    D'ailleurs, même topo pour @ng-bootstrap/ng-bootstrap.

    ***
    Ça faisait un bout de temps que je me demandais ce qu'étaient les chinoiseries de part et d'autre de wdm sur la ligne de résultat. Après les avoir citées ici et avoir vu les codes ASCII qui se suivent, je suppose que c'était supposé être des guillemets, et qu'on prévoyait utiliser autre chose comme console.
    ***

    Des fois que ça puisse aider, voilà les instructions de montage du projet :
    https://www.codeproject.com/Articles...ular-7-Applica

  6. #6
    Membre extrêmement actif
    Avatar de dukoid
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2012
    Messages
    2 100
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2012
    Messages : 2 100
    Par défaut
    repart d'un projet vierge en angular 9
    et tu intègres le code...

  7. #7
    Membre émérite
    Profil pro
    Développeur Web
    Inscrit en
    Février 2008
    Messages
    2 779
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Février 2008
    Messages : 2 779
    Par défaut
    Oui, c'est bien ce que j'ai fait ...

  8. #8
    Membre émérite
    Profil pro
    Développeur Web
    Inscrit en
    Février 2008
    Messages
    2 779
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Février 2008
    Messages : 2 779
    Par défaut
    Bonjour,

    Après avoir lu ceci j'ai compris qu'il fallait remplacer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    import { merge } from 'rxjs/operators'
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    import { merge } from 'rxjs'
    et effectivement ça compile, l'histoire ne dit pas pour combien de temps.

    D'autant que quelqu'un d'autre dans le même fil suggère rxjs/observable/merge, et que par ailleurs on suggère de remplacer l'instruction par une autre qui a très peu de mots en commun et de comprendre spontanément pourquoi.

    Le filtre sur l'autocomplétion ne fonctionne pas mais ça je soupçonne que je vais trouver ailleurs ce qui coince, d'autant que c'est déjà arrivé avant-hier.

    Alors qu'est-ce qui s'est passé ? Selon l'instruction de compilation, on ne travaille pas avec les mêmes versions des modules ?

    Des considérations supplémentaires peuvent-elles s'avérer utiles pour naviguer pas trop au hasard ?

  9. #9
    Membre émérite
    Profil pro
    Développeur Web
    Inscrit en
    Février 2008
    Messages
    2 779
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Février 2008
    Messages : 2 779
    Par défaut
    Oups, je viens de regarder le "corrigé", et effectivement merge est importé de rxjs.

    Finalement c'est moi qui ai fait tout ce bocson ?

    Ah, ça me revient ... Le mode opératoire laisse les gens autonomes sur les déclarations des objets, alors j'ai mis le curseur sur le trait ondulé qui me signale une variable non déclarée, on m'a proposé un lien pour corriger le problème, et ceci m'a proposé une déclaration dans rxjs/operators.

    Bon, voilà une occasion de mémoriser et de déclarer merge à la main.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    import { merge } from 'rxjs';
    Apparemment, pour les autres objets on peut utiliser l'assistant de l'intellisense pour la déclaration.

    Il y en a beaucoup, des objets avec des homonymes à plusieurs endroits, qui réservent ce genre de surprise ?

  10. #10
    Membre très actif
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2019
    Messages
    707
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    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
    Par défaut
    surtout sur des mots clés très utilisés !

  11. #11
    Membre émérite
    Profil pro
    Développeur Web
    Inscrit en
    Février 2008
    Messages
    2 779
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Février 2008
    Messages : 2 779
    Par défaut
    Si tu as des exemples avec les déclarations correspondantes, j'imagine que ça peut rendre service à plus d'un.

  12. #12
    Membre extrêmement actif
    Avatar de dukoid
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2012
    Messages
    2 100
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2012
    Messages : 2 100
    Par défaut
    en fait, depuis la nouvelle version de rxjs ils ont déplacés des objets
    je crois qu'avant c’était rxjs/operators et maintenant dans rxjs
    c'est pour améliorer les choses car maintenant plus besoin d'ajouter /operators ...

    c'est heureusement assez rare mais ça arrive ce genre de chose donc il faut faire attention à cela entre différentes versions d'un même packages

  13. #13
    Membre émérite
    Profil pro
    Développeur Web
    Inscrit en
    Février 2008
    Messages
    2 779
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Février 2008
    Messages : 2 779
    Par défaut
    Je crois qu'un inventaire là-dessus serait bienvenu.
    Comment on pourrait appeler ça ?
    Déclarations et homonymes ?

Discussions similaires

  1. Un PB avec une copie synchronisée
    Par Cidra78 dans le forum Windows XP
    Réponses: 2
    Dernier message: 26/01/2009, 18h53
  2. [MySQL] Afficher les services qui n'ont pas de relation avec une famille
    Par yosraisi dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 19/06/2008, 11h11
  3. Réponses: 6
    Dernier message: 30/01/2008, 20h46
  4. {VBA Excel} Simplifier une macro avec une copie
    Par Thomas69 dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 21/06/2007, 14h38
  5. Pas à pas dans eclipse avec une appli tomcat
    Par Mister Nono dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 07/09/2006, 09h00

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