This commit is contained in:
Christophe 2022-09-27 11:27:55 +02:00
parent 4c40f9b7b6
commit 6cb3d68829
3 changed files with 5458 additions and 7201 deletions

View file

@ -1,57 +1,68 @@
const { src, dest, series, parallel, watch } = require('gulp'); const { src, dest, series, parallel, watch } = require('gulp');
const gulpSass = require('gulp-sass'); const gulpSass = require('gulp-sass')(require('sass'));
const sourcemaps = require('gulp-sourcemaps'); const sourcemaps = require('gulp-sourcemaps');
const postcss = require('gulp-postcss'); const postcss = require('gulp-postcss');
const autoprefixer = require('autoprefixer'); const autoprefixer = require('autoprefixer');
const CombineMQ = require('postcss-combine-media-query');
const notify = require('gulp-notify'); const notify = require('gulp-notify');
const concat = require('gulp-concat'); const concat = require('gulp-concat');
const uglify = require('gulp-uglify'); const uglify = require('gulp-uglify');
const babel = require('gulp-babel'); const babel = require('gulp-babel');
const rename = require('gulp-regex-rename'); const rename = require('gulp-regex-rename');
const CSSnano = require('cssnano');
// const unuse = require('postcss-uncss'); //https://github.com/uncss/postcss-uncss // const unuse = require('postcss-uncss'); //https://github.com/uncss/postcss-uncss
/* /*
* SASS$ * SASS$
*/ */
function sass() { function sass() {
let options_unuse = { return src(['css/**/*.scss'])
html: 'http://starter.spip', .pipe(sourcemaps.init())
}; .pipe(
return ( gulpSass({
src('css/**/*.scss') outputStyle: 'expanded',
.pipe(sourcemaps.init()) })
.pipe(gulpSass({ outputStyle: 'expanded' })) )
.on('error', (err) => notify().write(err)) .on('error', (err) => notify().write(err))
.pipe(postcss([autoprefixer()])) // autoprefixer .pipe(
//.pipe(postcss([autoprefixer(), cssnano()])) // autoprefixer + minifier postcss([
//.pipe(postcss([unuse(options_unuse), autoprefixer()])) // css unuse + autoprefixer CombineMQ, // rassemble les Media Queries (parfait pour les classes utilitaires)
.pipe(sourcemaps.write('.')) // initialize sourcemaps first autoprefixer, // ajoute les préfixes vendeurs
.pipe(dest('css')) // CSSnano, // minification
); ])
)
.pipe(sourcemaps.write('.')) // initialize sourcemaps first
.pipe(dest('css'));
} }
/* /*
* JS -> concat + babel * JS -> concat + babel
*/ */
function jsConcatMinif() { function jsConcatMinif() {
return src(['./js/a_compresser/*.js']) console.log('ok');
.pipe(sourcemaps.init()) return (
.pipe( src(['./js/a_compresser/*.js'])
babel({ .pipe(sourcemaps.init())
presets: ['@babel/preset-env'], .pipe(
}) babel({
) presets: ['@babel/preset-env'],
.pipe(concat('mon_site.min.js', { newLine: ';' })) })
.pipe(uglify()) )
.pipe(sourcemaps.write('.')) .pipe(concat('mon_site.min.js', { newLine: ';' }))
.pipe(dest('./js')); // SPECIFIQUE DEV: ne pas compacter le JS
// .pipe(uglify())
.pipe(sourcemaps.write('.'))
.pipe(dest('./js'))
);
} }
/* /*
* JS -> babel * JS -> babel
*/ */
function jsBabel() { function jsBabel() {
return src(['js/*.es6.js']) return src(['js/**/*.es6.js'])
.pipe( .pipe(
babel({ babel({
presets: ['@babel/preset-env'], presets: ['@babel/preset-env'],
@ -77,11 +88,48 @@ function watcherJsConcatMinif() {
} }
function watcherJsBabel() { function watcherJsBabel() {
watch('./js/*.es6.js', { ignoreInitial: false }, jsBabel).on('change', function () { watch('./js/**/*.es6.js', { ignoreInitial: false }, jsBabel).on('change', function () {
notify('JS (babel) ==> OK').write(''); notify('JS (babel) ==> OK').write('');
}); });
} }
/*
* SVG sprite
*/
// const gulpSvgSprite = require('gulp-svg-sprite');
// const config = {
// shape: {
// spacing: {
// box: 'icon',
// },
// },
// mode: {
// symbol: {
// dest: '.',
// sprite: 'sprite_symbol_picto.svg',
// },
// },
// };
//
// function svgSprite() {
// return (
// src('svg/**/*.svg')
// .pipe(gulpSvgSprite(config))
// .on('error', function (error) {
// console.log(error);
// })
// .pipe(dest('img'))
// );
// }
/*
* SVG minifier
*/
// var svgmin = require('gulp-svgmin');
// function svgMin() {
// return src('svg/*.svg').pipe(svgmin()).pipe(dest('./svgmin'));
// }
/* /*
* Exports des fonctions * Exports des fonctions
*/ */
@ -89,4 +137,6 @@ module.exports = {
default: parallel(sass, jsConcatMinif, jsBabel), default: parallel(sass, jsConcatMinif, jsBabel),
sass: sass, sass: sass,
watch: parallel(watcherSass, watcherJsConcatMinif, watcherJsBabel), watch: parallel(watcherSass, watcherJsConcatMinif, watcherJsBabel),
// sprite: svgSprite,
// svgmin: svgMin,
}; };

12529
package-lock.json generated

File diff suppressed because it is too large Load diff

View file

@ -19,24 +19,24 @@
"author": "tofulm at Gamuza", "author": "tofulm at Gamuza",
"license": "ISC", "license": "ISC",
"devDependencies": { "devDependencies": {
"@babel/core": "^7.14.6", "@babel/core": "^7.11.6",
"@babel/preset-env": "^7.14.5", "@babel/preset-env": "^7.11.5",
"@types/jquery": "^3.5.5", "@types/jquery": "^3.3.31",
"gulp": "^4.0.2", "gulp": "^4.0.2",
"gulp-babel": "^8.0.0", "gulp-babel": "^8.0.0",
"gulp-concat": "^2.6.1", "gulp-concat": "^2.6.1",
"gulp-notify": "^4.0.0", "gulp-notify": "^4.0.0",
"gulp-postcss": "^8.0.0",
"gulp-regex-rename": "^0.1.0", "gulp-regex-rename": "^0.1.0",
"gulp-svg-sprite": "^1.5.0", "gulp-sass": "^5.1.0",
"gulp-svgmin": "^3.0.0", "gulp-sourcemaps": "^3.0.0",
"gulp-uglify": "^3.0.2" "sass": "^1.49.11"
}, },
"dependencies": { "dependencies": {
"autoprefixer": "^10.2.6", "autoprefixer": "^9.8.6",
"gulp-postcss": "^9.0.0", "cssnano": "^5.1.7",
"gulp-sass": "^4.1.0", "gulp-postcss": "^8.0.0",
"gulp-sourcemaps": "^3.0.0", "gulp-uglify": "^3.0.2",
"postcss": "^8.3.5", "postcss-combine-media-query": "^1.0.1"
"postcss-uncss": "^0.17.0"
} }
} }