ez-wrapper v0.9.0
ez-wrapper
ez-wrapper est un wrapper js/scss.
A l'heure actuelle, ce module est capable de minifier les fichiers js ainsi que compiler et minifier les fichiers scss en fichier css.
Il a été pensé dans le but de pouvoir minifier des fichiers par groupe, par exemple :
src/js/style1.js
ET
src/js/style1-1.js
DANS
public/js/style1.min.js
src/js/style2.js
DANS
public/js/style2.min.js
Son intelligence lui permet de compiler seulement en cas de modification d'un des fichiers. Si un des fichiers est modifié, ez-wrapper va compiler tous les fichiers du groupe du fichier.
Le type de fichier est déterminé par son extension.
Utilisation
Installation
Pour compiler les fichiers js, vous devez installer uglify-js. Pour compiler les fichiers scss, vous devez installer fast-scss.
Déclaration
Pour compiler vos fichiers, vous devez d'abord déclarer ez-wrapper dans votre main (par exemple index.js) :
const ezWrapper = require('ez-wrapper');
ezWrapper(<configuration json>);
Note : Vous pouvez forcer la compilation en ajoutant un paramètre boolean pour valeur true après la configuration json
Note : la configuration json doit être sous forme d'objet ou de chaine de caractères
Exemple d'utilisation avec fs :
const fs = require('fs');
const ezWrapper = require('ez-wrapper');
ezWrapper(fs.readFileSync('./config/ez-wrapper.json', 'utf-8'));
Configuration
En cas d'une configuration invalide (mauvais type, fichier absent), ez-wrapper écrit la cause de l'erreur dans la console
{
"dataPath": "<fichier data>",
"src": {
"<un premier groupe>": [
"<chemin d'un fichier js>"
],
"<un deuxième groupe>": [
"<chemin d'un fichier scss>",
"<chemin d'un deuxième fichier scss>"
]
},
"dist": {
"<un premier groupe>": "<chemin du fichier js compilé>",
"<un deuxième groupe>": "<chemin du fichier scss compilé>"
}
}
Note : Le fichier data permet à ez-wrapper de faire un différentiel des fichiers qu'il a déjà compilé lors de l’exécution précédente.
Ce qui peut donner :
{
"dataPath": "config/ez-wrapper.data",
"src": {
"MonJs": [
"src/js/script.js"
],
"MonCss": [
"src/scss/styles.scss"
],
"MesImages": [
"src/imgs"
]
},
"dist": {
"MonDeuxièmeJs": "public/js/script.min.js",
"MonCss": "public/css/styles.css",
"MesImages": "public/imgs"
}
}