updated npm and cleanup gulp tasks

This commit is contained in:
djmaze 2021-01-18 23:01:21 +01:00
parent a80b17e011
commit 141e68f686
8 changed files with 636 additions and 752 deletions

View file

@ -66,15 +66,12 @@
"gulp-expect-file": "1.0.2", "gulp-expect-file": "1.0.2",
"gulp-filter": "6.0.0", "gulp-filter": "6.0.0",
"gulp-header": "2.0.9", "gulp-header": "2.0.9",
"gulp-if": "3.0.0",
"gulp-less": "4.0.1", "gulp-less": "4.0.1",
"gulp-livereload": "4.0.2", "gulp-livereload": "4.0.2",
"gulp-plumber": "1.2.1",
"gulp-rename": "2.0.0", "gulp-rename": "2.0.0",
"gulp-replace": "1.0.0", "gulp-replace": "1.0.0",
"gulp-rimraf": "1.0.0", "gulp-rimraf": "1.0.0",
"gulp-size": "3.0.0", "gulp-size": "3.0.0",
"gulp-sourcemaps": "2.6.5",
"gulp-stripbom": "1.0.5", "gulp-stripbom": "1.0.5",
"gulp-terser": "^1.4.0", "gulp-terser": "^1.4.0",
"gulp-through": "0.4.0", "gulp-through": "0.4.0",

View file

@ -8,18 +8,11 @@ const config = {
}, },
devVersion: '0.0.0', devVersion: '0.0.0',
releasesPath: 'build/dist/releases', releasesPath: 'build/dist/releases',
community: !argv.pro,
source: !!argv.source,
watch: false,
watchInterval: 1000,
googleCompile: false,
rainloopBuilded: false,
destPath: '', destPath: '',
cleanPath: '', cleanPath: '',
zipSrcPath: '', zipSrcPath: '',
zipFile: '', zipFile: '',
// zipFileShort: '',
paths: {} paths: {}
}; };
@ -37,10 +30,12 @@ config.paths.assets = {
config.paths.less = { config.paths.less = {
main: { main: {
src: 'dev/Styles/@Main.less', src: 'dev/Styles/@Main.less',
watch: ['dev/Styles/*.less'],
options: { options: {
paths: [path.join(__dirname, 'dev', 'Styles'), path.join(__dirname, 'vendors', 'bootstrap', 'less')] paths: [path.join(__dirname, 'dev', 'Styles'), path.join(__dirname, 'vendors', 'bootstrap', 'less')]
} }
},
admin: {
src: 'dev/Styles/@Admin.less'
} }
}; };
@ -53,6 +48,9 @@ config.paths.css = {
'vendors/inputosaurus/inputosaurus.css' 'vendors/inputosaurus/inputosaurus.css'
] ]
}, },
admin: {
name: 'admin.css'
},
boot: { boot: {
name: 'boot.css', name: 'boot.css',
src: [ src: [

View file

@ -4,8 +4,6 @@ const gulp = require('gulp');
const concat = require('gulp-concat-util'); const concat = require('gulp-concat-util');
const rename = require('gulp-rename'); const rename = require('gulp-rename');
const replace = require('gulp-replace'); const replace = require('gulp-replace');
const plumber = require('gulp-plumber');
const gulpif = require('gulp-if');
const eol = require('gulp-eol'); const eol = require('gulp-eol');
const livereload = require('gulp-livereload'); const livereload = require('gulp-livereload');
const filter = require('gulp-filter'); const filter = require('gulp-filter');
@ -39,7 +37,6 @@ const cssMainBuild = () => {
.src(src) .src(src)
.pipe(expect.real({ errorOnFailure: true }, src)) .pipe(expect.real({ errorOnFailure: true }, src))
.pipe(lessFilter) .pipe(lessFilter)
.pipe(gulpif(config.watch, plumber()))
.pipe( .pipe(
less({ less({
'paths': config.paths.less.main.options.paths 'paths': config.paths.less.main.options.paths
@ -54,6 +51,30 @@ const cssMainBuild = () => {
.pipe(livereload()); .pipe(livereload());
}; };
const cssAdminBuild = () => {
const autoprefixer = require('gulp-autoprefixer'),
less = require('gulp-less'),
lessFilter = filter('**/*.less', { restore: true }),
src = config.paths.less.admin.src;
return gulp
.src(src)
.pipe(expect.real({ errorOnFailure: true }, src))
.pipe(lessFilter)
.pipe(
less({
'paths': config.paths.less.main.options.paths
})
)
.pipe(lessFilter.restore)
.pipe(concat(config.paths.css.admin.name))
.pipe(autoprefixer())
.pipe(replace(/\.\.\/(img|images|fonts|svg)\//g, '$1/'))
.pipe(eol('\n', true))
.pipe(gulp.dest(config.paths.staticCSS))
.pipe(livereload());
};
const cssBootMin = () => { const cssBootMin = () => {
const cleanCss = require('gulp-clean-css'); const cleanCss = require('gulp-clean-css');
return gulp return gulp
@ -74,8 +95,18 @@ const cssMainMin = () => {
.pipe(gulp.dest(config.paths.staticCSS)); .pipe(gulp.dest(config.paths.staticCSS));
}; };
const cssBuild = gulp.parallel(cssBootBuild, cssMainBuild); const cssAdminMin = () => {
const cssMin = gulp.parallel(cssBootMin, cssMainMin); const cleanCss = require('gulp-clean-css');
return gulp
.src(config.paths.staticCSS + config.paths.css.admin.name)
.pipe(cleanCss())
.pipe(rename({ suffix: '.min' }))
.pipe(eol('\n', true))
.pipe(gulp.dest(config.paths.staticCSS));
};
const cssBuild = gulp.parallel(cssBootBuild, cssMainBuild, cssAdminBuild);
const cssMin = gulp.parallel(cssBootMin, cssMainMin, cssAdminMin);
const cssLint = (done) => done(); const cssLint = (done) => done();

View file

@ -6,14 +6,11 @@ const concat = require('gulp-concat-util'),
rename = require('gulp-rename'), rename = require('gulp-rename'),
replace = require('gulp-replace'), replace = require('gulp-replace'),
terser = require('gulp-terser'), terser = require('gulp-terser'),
plumber = require('gulp-plumber'),
gulpif = require('gulp-if'),
eol = require('gulp-eol'), eol = require('gulp-eol'),
eslint = require('gulp-eslint'), eslint = require('gulp-eslint'),
cache = require('gulp-cached'), cache = require('gulp-cached'),
expect = require('gulp-expect-file'), expect = require('gulp-expect-file'),
size = require('gulp-size'), size = require('gulp-size'),
sourcemaps = require('gulp-sourcemaps'),
gutil = require('gulp-util'); gutil = require('gulp-util');
const { config } = require('./config'); const { config } = require('./config');
@ -75,7 +72,6 @@ const jsMin = () =>
showTotal: false showTotal: false
}) })
) )
.pipe(gulpif(config.source, sourcemaps.init({ loadMaps: true })))
.pipe(replace(/"snappymail\/v\/([^/]+)\/static\/js\/"/g, '"snappymail/v/$1/static/js/min/"')) .pipe(replace(/"snappymail\/v\/([^/]+)\/static\/js\/"/g, '"snappymail/v/$1/static/js/min/"'))
.pipe(rename({ suffix: '.min' })) .pipe(rename({ suffix: '.min' }))
.pipe( .pipe(
@ -100,7 +96,6 @@ const jsMin = () =>
}) })
) )
.pipe(eol('\n', true)) .pipe(eol('\n', true))
.pipe(gulpif(config.source, sourcemaps.write('./')))
.pipe( .pipe(
size({ size({
showFiles: true, showFiles: true,
@ -115,7 +110,6 @@ const jsLint = () =>
.src(config.paths.globjs) .src(config.paths.globjs)
.pipe(cache('eslint')) .pipe(cache('eslint'))
.pipe(eslint()) .pipe(eslint())
.pipe(gulpif(config.watch, plumber()))
.pipe(eslint.format()) .pipe(eslint.format())
.pipe(eslint.failAfterError()); .pipe(eslint.failAfterError());

View file

@ -36,15 +36,10 @@ const snappymailSetup = (done) => {
fs.writeFileSync(dist + 'snappymail/v/' + versionFull + '/index.php.root', fs.readFileSync(dist + 'index.php')); fs.writeFileSync(dist + 'snappymail/v/' + versionFull + '/index.php.root', fs.readFileSync(dist + 'index.php'));
if (config.community) {
require('rimraf').sync(dist + 'snappymail/v/' + versionFull + '/app/libraries/snappymail/Providers/Prem.php');
}
config.destPath = config.releasesPath + '/webmail/' + versionFull + '/'; config.destPath = config.releasesPath + '/webmail/' + versionFull + '/';
config.cleanPath = dist; config.cleanPath = dist;
config.zipSrcPath = dist; config.zipSrcPath = dist;
config.zipFile = 'snappymail-' + (config.community ? 'community-' : '') + versionFull + '.zip'; config.zipFile = 'snappymail-' + versionFull + '.zip';
config.zipFileShort = 'snappymail-' + (config.community ? 'community-' : '') + 'latest.zip';
config.snappymailBuilded = true; config.snappymailBuilded = true;
@ -67,8 +62,6 @@ const snappymailClean = (done) => {
done(); done();
}; };
const snappymailShortName = (done) => copy(config.destPath + config.zipFile, config.destPath + config.zipFileShort, done);
exports.snappymailBuild = gulp.series(snappymailCopy, snappymailSetup); exports.snappymailBuild = gulp.series(snappymailCopy, snappymailSetup);
exports.snappymail = gulp.series(exports.snappymailBuild, snappymailZip, snappymailClean, snappymailShortName); exports.snappymail = gulp.series(exports.snappymailBuild, snappymailZip, snappymailClean);

View file

@ -17,22 +17,14 @@ const webpackError = (err) => {
const webpackCallback = (done) => (err, stats) => { const webpackCallback = (done) => (err, stats) => {
if (err) { if (err) {
if (config.watch) {
webpackError(err);
} else {
throw new gutil.PluginError('webpack', err); throw new gutil.PluginError('webpack', err);
}
} else if (stats && stats.compilation && stats.compilation.errors && stats.compilation.errors[0]) { } else if (stats && stats.compilation && stats.compilation.errors && stats.compilation.errors[0]) {
if (config.watch) {
stats.compilation.errors.forEach(webpackError);
} else {
throw new gutil.PluginError('webpack', stats.compilation.errors[0]); throw new gutil.PluginError('webpack', stats.compilation.errors[0]);
} }
}
done(); done();
}; };
exports.webpack = (done) => { exports.webpack = (done) => {
webpack(webpackCfgBuilder(config.paths.staticJS, !config.community, 'production'), webpackCallback(done)); webpack(webpackCfgBuilder(config.paths.staticJS, 'production'), webpackCallback(done));
}; };

View file

@ -45,7 +45,7 @@ const babelLoaderOptions = function() {
}; };
process.noDeprecation = true; process.noDeprecation = true;
module.exports = function(publicPath, pro, mode) { module.exports = function(publicPath, mode) {
return { return {
// mode: 'production', // mode: 'production',
mode: mode || 'development', mode: mode || 'development',

1297
yarn.lock

File diff suppressed because it is too large Load diff