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

NodeJS Discussion :

npm install mysql 3 méthodes, une seule fonctionne


Sujet :

NodeJS

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par défaut npm install mysql 3 méthodes, une seule fonctionne
    Bonjour,

    Je débute avec NodeJS et je voulais tester les possibilité de couplage avec MYSQL.

    Le contexte
    Windows 8
    Node.exe installé sur le C:
    Le projet dans un répertoire NodeDev sur le D:

    dernière version stable de NodeJS

    Méthode 1:
    Je me colle dans le rep du projet et je fais un npm install mysql

    le Module Mysql est bien installé dans le rep du projet
    Le require dans mon projet fonctionne


    Méthode 2:
    Je me colle dans le rep du projet et je fais un npm install mysql -g

    Le module mysql est installé dans C:/Users/AppData ....
    Le require dans mon projet ne fonctionne pas

    Méthode 3:
    Je me colle dans le rep des modules de node.exe sur C je fais un npm install mysql

    Le module mysql est installé dans le repertoire courant et le JSON des modules est mis à jour
    Le require dans mon projet ne fonctionne pas

    Je ne comprends pas pourquoi les methodes 2 et 3 échouent
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  2. #2
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par défaut
    Bon j'avance dans mon exploration du souci

    j'ai trouvé le commande en ligne

    Qui me retourne
    [ 'C:\\Users\\xxxxx\\repl\\node_modules',
    'C:\\Users\\xxxxx\\node_modules',
    'C:\\Users\\node_modules',
    'C:\\node_modules',
    'C:\\Users\\xxxxx\\.node_modules',
    'C:\\Users\\xxxxx\\.node_libraries',
    'C:\\Program Files\\nodejs\\lib\\node' ]
    Sauf que je ne sais pas si il explore ces paths de façon récursive au niveau des sous répertoires

    Du coup
    'C:\\Program Files\\nodejs\\lib\\node'
    qui d'ailleurs n'existe pas sur mon poste ...

    Comparé au path ou sont les modules de nodes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    C:\Program Files\nodejs\node_modules\npm\node_modules
    Je vais donc cherche si il y a un JSON de paramètrage avec ces paths et rajouter le path voulu ???
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  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 : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2005
    Messages : 4 419
    Par défaut
    TLDR : Installe tout en local au projet, jamais rien en global.


    Je ne comprends pas pourquoi les methodes 2 et 3 échouent
    Parce que seule la méthode 1 est la bonne pour installer une dépendance à ton projet.

    Il faut distinguer les dépendances (dependencies) de ton projet, et les dépendances de développement de ton projet (devDependencies).

    Les premières sont les libs externes que tu peux require dans ton code.

    Les deuxièmes sont des outils pour t'aider à développer (linter, bundler, extension de JS par ex TypeScript, serveur http, etc ...).

    Un mot sur les installations globales de npm avec le -g, beaucoup d'outils (donc des devDependencies uniquement, jamais des dependencies) proposent dans leur documentation une installation globale. C'est toujours une erreur. Il ne faut jamais installer globalement des dépendances de développement. Elles sont propres à ton projet. Tu peux parfaitement avoir un projet qui utilise gulp en version 3 et un autre en version 4 (par ex). Le but ici est d'être CI friendly. Donc rien en global, tout en local et déclaré dans le package.json.

  4. #4
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par défaut
    Merci de ta réponse.

    Donc si je comprends bien il me faudra pour chaque projet installer des dépendances.

    Seuls les "outils" sont à installer globalement

    Du coup si on travaille simultanément sur plusieurs projets on peut avoir des dépendances de versions différentes?

    Existe-t-il du coup un "outil" ou une ligne de commande qui récapitules toutes les dépendances d'un projet et leur version ( autre que le JSON package dans le projet ) ?
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  5. #5
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par défaut
    A priori j'ai trouvé un truc me disant d'utiliser bower ...

    Mais à l'installe ça me dit que c'est deprecated ...

    J'avoue avoir du mal à savoir comment maintenir un projet avec
    des modules de base fournis avec node.exe
    des modules installés en -g dans le user
    de modules installés dans le projet

    Et pas d'outil pour lister et gérer tout ça ????

    Ce n'est plus du dev. c'est un comptoir d'apothicaire, ou de la brocante ...
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  6. #6
    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 : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2005
    Messages : 4 419
    Par défaut
    Citation Envoyé par SpaceFrog Voir le message
    A priori j'ai trouvé un truc me disant d'utiliser bower ...

    Mais à l'installe ça me dit que c'est deprecated ...
    Bower n'est pas un gestionnaire de dépendance mais un gestionnaire de téléchargement.

    Il n'est utilisable que pour les projets frontend, il ne peut pas gérer les projets Node.js.

    Il est en effet déprécié et ne doit plus être utilisé. La seule raison d'utiliser bower c'est de devoir travailler sur du legacy en frontend.

    Citation Envoyé par SpaceFrog Voir le message
    J'avoue avoir du mal à savoir comment maintenir un projet avec
    des modules de base fournis avec node.exe
    Les modules de base ne sont pas réellement des modules, c'est l'API de Node comme tu as l'API DOM embarquée avec un navigateur.

    Tu as le langage pur d'un côté qui est lié au moteur JavaScript (V8 en l'occurrence). Ce langage est commun à Node et aux browsers.

    Avec Node tu as une API propre à Node.js (cf sa doc).
    Avec les browsers tu as une API propre aux browsers (l'API DOM).

    Et enfin tu as des packages npm qui servent à ajouter à tes projets des dépendances (de dev ou non) écrites par d'autres développeurs. Ces dépendances peuvent être compatibles Node.js ou uniquement pour les browsers ou bien encore pour tous les contextes. Ça dépend de chaque dépendance.

    Citation Envoyé par SpaceFrog Voir le message
    des modules installés en -g dans le user
    N'installes jamais rien en global ça simplifiera grandement les choses.

    Citation Envoyé par SpaceFrog Voir le message
    de modules installés dans le projet
    Tous les modules doivent être installés ici.

    Citation Envoyé par SpaceFrog Voir le message
    Et pas d'outil pour lister et gérer tout ça ????
    Pour manipuler tes dépendances c'est npm le bon outil.

    Ensuite il ya les modules au sens de modules JavaScript. C'est différent de la gestion des dépendances.

    Selon le système de module que tu vas utiliser tu ne vas pas appeler tes modules de la même manière.

    Par défaut en Node.js c'est CommonJS le système de module. Donc tu vas appeler tes modules, qu'ils soient exposés par l'API de Node (http par ex) ou par un module tiers installé via npm, via la commande require.

    Si tu souhaites utiliser les modules ES6 ( mais en Node à moins d'utiliser TypeScript ça ne sert à rien ) alors ça sera via import.

  7. #7
    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 : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Août 2005
    Messages : 4 419
    Par défaut
    Citation Envoyé par SpaceFrog Voir le message
    Donc si je comprends bien il me faudra pour chaque projet installer des dépendances.
    Oui.

    Citation Envoyé par SpaceFrog Voir le message
    Seuls les "outils" sont à installer globalement
    Non. Contrairement à ce que la plupart des outils indiquent dans leur documentation il faut les installer localement à chaque projet. C'est une bêtise de les installer globalement.

    Citation Envoyé par SpaceFrog Voir le message
    Du coup si on travaille simultanément sur plusieurs projets on peut avoir des dépendances de versions différentes?
    Oui.

    Citation Envoyé par SpaceFrog Voir le message
    Existe-t-il du coup un "outil" ou une ligne de commande qui récapitules toutes les dépendances d'un projet et leur version ( autre que le JSON package dans le projet ) ?
    Si tu veux manipuler tes dépendances il faut utiliser npm, c'est le bon outil.

    Pour lister les dépendances installées c'est la commande npm ls.

Discussions similaires

  1. Réponses: 5
    Dernier message: 28/11/2013, 14h11
  2. Réponses: 3
    Dernier message: 01/03/2010, 10h17
  3. [AJAX] [XMLHttp][IE]Fonction qui ne fonctionne qu'une seule fois
    Par narnou dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 13/07/2007, 11h16
  4. [VB+MySql]Une seule connexion à ma Bdd...
    Par Deejoh dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 28/01/2006, 11h08
  5. [C#] Une seule méthode pour plusieurs composants
    Par niPrM dans le forum Windows Forms
    Réponses: 8
    Dernier message: 01/06/2004, 14h41

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