Parcel, retour d'expérience

Dans ma quête de l’outil parfait pour :

  • Compiler les fichiers Sass
  • Et/ou fusionner les fichiers CSS
  • Minifier le résultat
  • Et tant qu’à faire minifier aussi les fichiers Javascript (j’ai rarement besoin de les fusionner par contre)
  • Et cerise sur le gâteau s’il pouvait aussi s’occuper de « packager »[1] les modules

Ce qui est déjà un bon début, je profite du démarrage d’un projet de thème pour explorer l’état de l’art en la matière.

L’idée, une fois trouvé le bon outil, s’il existe, est d’appliquer cette procédure à la centaine de modules (thèmes et plugins) dont je m’occupe et possiblement moderniser la production des releases de Dotclear — oui je suis un doux rêveur !

J’ai listé Parcel, Webpack, Gulp, Grunt ; on m’a aussi mentionné Rollup (que je ne connais pas du tout). J’ai donc commencé hier avec Parcel.

En préambule, et parce que j’ai pas loin d’une centaine de projets, il est hors de question pour moi d’installer de tels outils, qui sont quasi sinon tous dépendants de node, de façon locale. J’ai regardé pour Parcel, ça veut dire 185Mo pour l’installation basique, multiplié par le nombre de projets on arrive à plus de 18Go, juste pour remplir la mission projetée ; c’est clairement abusé. Donc ça ne pourra être qu’une installation globale.

Donc installation globale de Parcel, d’après leur doc :

sudo npm install -g parcel@next

J’ai utilisé la commande npm ne sachant pas trop la différence avec la commande qui utilise yarn ; d’ailleurs si quelqu’un peut me dire ce qui est le mieux ?

Jusque là pas de souci.

Je déplace mon fichier CSS — qui comporte un @import d’un fichier de normalisation — dans un répertoire src/css et je lance la commande suivante :

parcel src/css/style.css

Jusque là pas de souci, j’ai un nouveau répertoire dist avec à l’intérieur ma feuille de style complète.

Je suis joueur, donc maintenant, plutôt que s’occuper d’une simple feuille de style CSS, je vais voir ce que ça donne avec du Sass. Je copie donc ma feuille de style src/css/style.css dans src/scss/style.scss sans rien changer au contenu de la feuille de style.

Normalement ça doit marcher pareil, dixit la doc qui indique que la gestion des fichiers Sass fait partie du paquet. Innocent je lance la commande :

parcel src/scss/style.scss

Et là, patatras :

ℹ️ Server running at http://localhost:1234
🚨 Build failed.
Error: Failed to install @parcel/transformer-sass: Callback must be a function. Received undefined
Error: Failed to install @parcel/transformer-sass: Callback must be a function. Received undefined
    at install (/usr/local/lib/node_modules/parcel/node_modules/@parcel/package-manager/lib/installPackage.js:171:11)
    at async PromiseQueue._runFn (/usr/local/lib/node_modules/parcel/node_modules/@parcel/utils/lib/PromiseQueue.js:108:7)
    at async PromiseQueue._next (/usr/local/lib/node_modules/parcel/node_modules/@parcel/utils/lib/PromiseQueue.js:95:5)

Avec un serveur ouvert localement sur le port 1234 et je ne sais absolument pas d’où il sort ni à quoi il sert.

Je suis retourné voir la doc au sujet des fichiers Sass et ils indiquent que : Parcel supports sass files out of the box by utilizing the @parcel/transformer-sass plugin, under the hood this plugin uses the sass npm package which is the JavaScript version of dart-sass..

À défaut d’autre piste j’essaie la commande qu’ils indiquent avec le même succès que la précédente.

Et voilà, fin du game, parce que va comprendre le pourquoi du comment, on trouve rien sur les internets qui explique comment régler ce problème !

Autant dire qu’un débutant dans le métier — ce que je suis d’une certaine façon —, s’il n’a pas sous la main un « sénior » ou un sachant capable de lui expliquer le pourquoi du comment et la « bonne » manière de se servir de Parcel, il va pas insister longtemps.

Je précise que Compass et Sass utilisés jusqu’alors pour Dotclear et quelques thèmes, fonctionnent parfaitement sur ma machine, si on excepte les quelques messages qui indiquent que ça devient obsolète.

Un compass version renvoie :

Compass 1.0.3 (Polaris)
Copyright (c) 2008-2021 Chris Eppstein
Released under the MIT License.
Compass is charityware.
Please make a tax deductable donation for a worthy cause: http://umdf.org/compass

Et un sass —version renvoie :

1.32.5 compiled with dart2js 2.10.4

Comme je n’ai pas envie de passer plus d’une journée sur chacun de ses outils, je vais donc m’occuper du suivant sur ma liste…

Note

[1] Au sens du format de package attendu par Dotclear pour l’installation d’un plugin ou d’un thème.

Ajouter un commentaire

Les champs suivis d'un * sont obligatoires

Les commentaires peuvent être formatés en utilisant la syntaxe Markdown Extra.

Ajouter un rétrolien

URL de rétrolien : https://open-time.net/trackback/14922

Haut de page