11521 sujets

JavaScript, DOM et API Web HTML5

Salut.

Je me confronte à Gulp alors que ce n’est pas vraiment mon domaine et malheureusement cela ne fonctionne pas comme désiré (le build ne se fait pas j’ai des erreurs). Du coup je creuse et tombe sur des questions restées sans réponses malgré mes recherches sur la toile.

Première question :
Quand je fais un
gulp -v
sur mon répertoire projet, j’obtiens :

[10:23:00] Warning: gulp version mismatch:
[10:23:00] Global gulp is 3.9.0
[10:23:00] Local gulp is 3.8.10

J’en conclue que la version de gulp sur mon projet est plus ancienne que celle installée en global. J’ai trouvé comment mettre à jour le gulp local, mais cela risque de poser des problèmes.
=> Est-ce vraiment un souci d’avoir 2 versions différentes ? Il est noté "Warning", et non "Error"…

Seconde question :
J’ai testé le build après avoir mis à jour le gulp local. Le warning a disparu, mais j’ai toujours une erreur :

/Chemin/de/mon/projet/node_modules/gulp-sass/node_modules/node-sass/sass.js:22
  throw new Error('`libsass` bindings not found. Try reinstalling `node-sass`?');
  ^

Error: `libsass` bindings not found. Try reinstalling `node-sass`?
    at requireBinding (/Chemin/de/mon/projet/node_modules/gulp-sass/node_modules/node-sass/sass.js:22:9)
    at Object.<anonymous> (/Chemin/de/mon/projet/node_modules/gulp-sass/node_modules/node-sass/sass.js:25:15)
    at Module._compile (module.js:434:26)
    at Object.Module._extensions..js (module.js:452:10)
    at Module.load (module.js:355:32)
    at Function.Module._load (module.js:310:12)
    at Module.require (module.js:365:17)
    at require (module.js:384:17)
    at Object.<anonymous> (/Chemin/de/mon/projet/node_modules/gulp-sass/index.js:3:13)
    at Module._compile (module.js:434:26)

Une idée du pourquoi et du comment ?
bonjour

A) 1ere question
non pas de problème : je pense qu si gulp local (g) ne trouve pas sa librairie local ( l) il utilise celle du global si disponible ( L) . Si la version de la librairie global (L) est compatible qu 'avec la version gulp global (G) et pas local (g) .. alors il y aura un problème !!
NB GLOBAL en MAJUSCULE , local en minuscule
NB gG= gulp lL= librairie


B) 2eme question
Une librairie écrite en ruby est lente par rapport a celle écrite en C. Le problème ne viendrait t il pas de la façon dont est implémenter / configurer le plugin sass pour gulp ?
Par exemple avec grunt ; il y a 2 versions ( npm ) du plugin de "grunt sass " :
1- version wrapper pour ruby sass => grunt-contrib-sass ( sass implemented in Ruby)
2-version wrapper pour sass C(libsass) => grunt-sass ( sass in C )

D'après mes lectures pour gulp on a :
3-pour gulp et libsass ( C) : gulp-sass(node.js ( node-sass (libsass)))
4-pour gulp et ruby sass : gulp-ruby-sass ( node.js ( node-??? (ruby sass)))

vous êtes dans le cas 3 et les liens pour ce cas contiennent des informations relatives aux "alertes" et "problèmes" ( souvent relatif aux versions) .

mon expérience
5- Configurer grunt est un vrai cauchemars au niveau de la gestion des versions ( windows dll hell) il y a peu de temps . Je pense que gulp est un outils de plus haut niveau et donc plus facile à configurer ( moins de lignes) mais qui demande plus de travail ( comprendre la bas niveau ) quand rien ne va ....
6- quand on utilise du natif " C" , dans bien des cas npm ? node ? essaie de recompiler la librairie et un install/desintall ne fonctionne pas , il faut recompiler la librairie . Ceci doit se faire de facon automatique en précisant la plateforme version du compilateur ( sous MS windows voir compilateur de Visual studio )
7- Je ne suis pas utilisateur de gulp seulement de nodejs /grunt

C) ma question
-8 En ruby ; compass nécessite sass ( gem) . Existe t il une implementation C de compass fonctionnant sur sass "C "( libsass) ?
-9 quel est le nom du module node-??? pour ruby sass ? ( aucun ? pas besoin ? middleware express ? )
-10 un mélange de languages connectés par quoi ? ( serveur javascript pour http ? )
NB language : gulp/grunt /nodejs=> javascript , gem =ruby, sass ( ruby ou C) !


En espérant que ceci sera utile .
Modifié par 75lionel (29 Sep 2015 - 13:12)
Bonjour et merci pour cette réponse. (je ne réponds moi-même que tardivement à cause de problèmes de santé à priori réglés…)

Je ne saurais répondre à votre point C), mais à priori, mon problème n’était pas lié à la version Ruby de (cf. ci-dessous).

Le problème venait d’un conflit de version de node. En effet, le projet sur lequel j’interviens ayant déjà un certain âge… est basé sur node 0.10.33 et gulp 3.8.10. Ayant installé mon node.js via brew, j’avais une version 4.0.0 (et gulp 3.9.0). Je pense donc que le package.json (ou le gulpfile.js, ce n’est pas encore clair pour moi) ne fonctionnait pas avec ma version récente de node. J’ai donc désinstallé gulp, node et npm et ai installé la vieille version de node trouvée ici : https://nodejs.org/en/download/releases/ , ainsi que la version adéquate de gulp
J’ai ensuite fait un npm rebuild sur le projet et c’était OK…

Par contre je me pose une question annexe : j’ai donc un vieux node.js sur mon mac quid si je dois gérer un autre projet compatible avec node 4 ? Il n’est pas possible d’installer 2 version de node ?