@nitro/gulp 10.0.4 → 11.0.0-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/utils.js +0 -22
- package/package.json +9 -11
- package/tasks/dump-views.js +3 -2
- package/tasks/minify-images.js +39 -43
- package/tasks/watch-assets.js +0 -20
- package/tasks/watch-serve.js +0 -39
package/lib/utils.js
CHANGED
|
@@ -3,15 +3,6 @@
|
|
|
3
3
|
const config = require('config');
|
|
4
4
|
const gulp = require('gulp');
|
|
5
5
|
const plugins = require('gulp-load-plugins')();
|
|
6
|
-
let browserSync;
|
|
7
|
-
|
|
8
|
-
function getBrowserSyncInstance() {
|
|
9
|
-
const name = `Nitro${config.get('server.port')}`;
|
|
10
|
-
if (!browserSync) {
|
|
11
|
-
browserSync = require('browser-sync').create(name);
|
|
12
|
-
}
|
|
13
|
-
return browserSync;
|
|
14
|
-
}
|
|
15
6
|
|
|
16
7
|
function getTask(task) {
|
|
17
8
|
const gulpFunction = require(`../tasks/${task}`)(gulp, plugins);
|
|
@@ -23,17 +14,6 @@ function getProjectPath() {
|
|
|
23
14
|
return config.get('nitro.basePath');
|
|
24
15
|
}
|
|
25
16
|
|
|
26
|
-
// load optional package
|
|
27
|
-
function getOptionalPackage(x) {
|
|
28
|
-
let mod;
|
|
29
|
-
try {
|
|
30
|
-
mod = require(x);
|
|
31
|
-
} catch (error) {
|
|
32
|
-
mod = null;
|
|
33
|
-
}
|
|
34
|
-
return mod;
|
|
35
|
-
}
|
|
36
|
-
|
|
37
17
|
function each(cfgs, fn) {
|
|
38
18
|
if (Array.isArray(cfgs)) {
|
|
39
19
|
cfgs.forEach((cfg) => {
|
|
@@ -45,9 +25,7 @@ function each(cfgs, fn) {
|
|
|
45
25
|
}
|
|
46
26
|
|
|
47
27
|
module.exports = {
|
|
48
|
-
getBrowserSyncInstance,
|
|
49
28
|
getTask,
|
|
50
29
|
getProjectPath,
|
|
51
|
-
getOptionalPackage,
|
|
52
30
|
each,
|
|
53
31
|
};
|
package/package.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nitro/gulp",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "11.0.0-beta.1",
|
|
4
4
|
"description": "Nitro gulp",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "The Nitro Team",
|
|
7
7
|
"engines": {
|
|
8
|
-
"node": ">=
|
|
9
|
-
"npm": ">=10.
|
|
8
|
+
"node": ">=22.11.0 <25",
|
|
9
|
+
"npm": ">=10.9.0 <12"
|
|
10
10
|
},
|
|
11
11
|
"scripts": {
|
|
12
12
|
"lint": "eslint .",
|
|
@@ -23,19 +23,17 @@
|
|
|
23
23
|
"gulp"
|
|
24
24
|
],
|
|
25
25
|
"peerDependencies": {
|
|
26
|
-
"@nitro/app": ">=
|
|
26
|
+
"@nitro/app": ">=11.0.0-beta.1",
|
|
27
27
|
"gulp": ">=5.0.0"
|
|
28
28
|
},
|
|
29
29
|
"dependencies": {
|
|
30
|
-
"browser-sync": "3.0.4",
|
|
31
30
|
"compression": "1.8.1",
|
|
32
|
-
"config": "4.2.
|
|
33
|
-
"del": "
|
|
34
|
-
"get-port": "
|
|
35
|
-
"globby": "11.1.0",
|
|
31
|
+
"config": "4.2.1",
|
|
32
|
+
"del": "8.0.1",
|
|
33
|
+
"get-port": "7.1.0",
|
|
36
34
|
"gulp": "5.0.1",
|
|
37
35
|
"gulp-html-validate": "0.2.0",
|
|
38
|
-
"gulp-imagemin": "
|
|
36
|
+
"gulp-imagemin": "9.2.0",
|
|
39
37
|
"gulp-live-server": "0.0.31",
|
|
40
38
|
"gulp-load-plugins": "2.0.8",
|
|
41
39
|
"gulp-newer": "1.4.0",
|
|
@@ -49,7 +47,7 @@
|
|
|
49
47
|
"yargs": "18.0.0"
|
|
50
48
|
},
|
|
51
49
|
"optionalDependencies": {
|
|
52
|
-
"imagemin-pngquant": "
|
|
50
|
+
"imagemin-pngquant": "10.0.0"
|
|
53
51
|
},
|
|
54
52
|
"devDependencies": {
|
|
55
53
|
"@merkle-open/eslint-config": "4.0.1",
|
package/tasks/dump-views.js
CHANGED
|
@@ -16,11 +16,12 @@
|
|
|
16
16
|
*/
|
|
17
17
|
|
|
18
18
|
const yargs = require('yargs');
|
|
19
|
+
// eslint-disable-next-line import/no-unresolved -- yargs exposes helpers via package "exports" map.
|
|
19
20
|
const { hideBin } = require('yargs/helpers');
|
|
20
21
|
const config = require('config');
|
|
21
22
|
const view = require('@nitro/app/app/lib/view');
|
|
22
|
-
const del =
|
|
23
|
-
const getPort =
|
|
23
|
+
const del = (...args) => import('del').then(mod => mod.deleteAsync(...args));
|
|
24
|
+
const getPort = () => import('get-port').then(mod => mod.default());
|
|
24
25
|
|
|
25
26
|
const argv = yargs(hideBin(process.argv)).argv;
|
|
26
27
|
const serverPath = require('@nitro/app/app/lib/utils').getServerPath();
|
package/tasks/minify-images.js
CHANGED
|
@@ -4,50 +4,47 @@ const config = require('config');
|
|
|
4
4
|
const ordered = require('ordered-read-streams');
|
|
5
5
|
const utils = require('../lib/utils');
|
|
6
6
|
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
const
|
|
7
|
+
async function loadImageminPlugins() {
|
|
8
|
+
const plugins = [];
|
|
9
|
+
|
|
10
|
+
try {
|
|
11
|
+
const mozjpeg = (await import('imagemin-mozjpeg')).default;
|
|
12
|
+
plugins.push(mozjpeg({ quality: 75, progressive: true }));
|
|
13
|
+
} catch { /* empty */ }
|
|
14
|
+
|
|
15
|
+
try {
|
|
16
|
+
const optipng = (await import('imagemin-optipng')).default;
|
|
17
|
+
plugins.push(optipng({ optimizationLevel: 7 }));
|
|
18
|
+
} catch { /* empty */ }
|
|
19
|
+
|
|
20
|
+
try {
|
|
21
|
+
const pngquant = (await import('imagemin-pngquant')).default;
|
|
22
|
+
plugins.push(pngquant());
|
|
23
|
+
} catch { /* empty */ }
|
|
12
24
|
|
|
13
|
-
|
|
14
|
-
const
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
25
|
+
try {
|
|
26
|
+
const svgo = (await import('imagemin-svgo')).default;
|
|
27
|
+
plugins.push(svgo({
|
|
28
|
+
plugins: [
|
|
29
|
+
{ name: 'collapseGroups', active: false },
|
|
30
|
+
// { name: 'cleanupIDs', active: false },
|
|
31
|
+
{ name: 'removeUnknownsAndDefaults', active: false },
|
|
32
|
+
{ name: 'removeViewBox', active: false },
|
|
33
|
+
],
|
|
34
|
+
}));
|
|
35
|
+
} catch { /* empty */ }
|
|
18
36
|
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
// console.log('imagemin-pngquant: ', imageminPngquant ? 'installed' : 'NOT');
|
|
22
|
-
// console.log('imagemin-svgo: ', imageminSvgo ? 'installed' : 'NOT');
|
|
37
|
+
return plugins;
|
|
38
|
+
}
|
|
23
39
|
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
);
|
|
33
|
-
}
|
|
34
|
-
if (imageminSvgo) {
|
|
35
|
-
imageminPluginsConfig.push(
|
|
36
|
-
plugins.imagemin.svgo({
|
|
37
|
-
plugins: [
|
|
38
|
-
{ collapseGroups: false },
|
|
39
|
-
{ cleanupIDs: false },
|
|
40
|
-
{ removeUnknownsAndDefaults: false },
|
|
41
|
-
{ removeViewBox: false },
|
|
42
|
-
],
|
|
43
|
-
})
|
|
44
|
-
);
|
|
45
|
-
}
|
|
46
|
-
if (imageminPngquant) {
|
|
47
|
-
imageminPluginsConfig.push(
|
|
48
|
-
imageminPngquant()
|
|
49
|
-
);
|
|
50
|
-
}
|
|
40
|
+
module.exports = (gulp, plugins) => {
|
|
41
|
+
|
|
42
|
+
return async () => {
|
|
43
|
+
const minifyImagesConfigs = config.has('gulp.minifyImages') ? config.get('gulp.minifyImages') : {};
|
|
44
|
+
const imageminPlugins = await loadImageminPlugins();
|
|
45
|
+
const imagemin = (await import('gulp-imagemin')).default;
|
|
46
|
+
|
|
47
|
+
const streams = [];
|
|
51
48
|
|
|
52
49
|
utils.each(minifyImagesConfigs, (minifyImagesConfig) => {
|
|
53
50
|
if (minifyImagesConfig && minifyImagesConfig.src && minifyImagesConfig.dest) {
|
|
@@ -56,7 +53,7 @@ module.exports = (gulp, plugins) => {
|
|
|
56
53
|
.src(minifyImagesConfig.src, { encoding: false })
|
|
57
54
|
.pipe(plugins.newer(minifyImagesConfig.dest))
|
|
58
55
|
.pipe(
|
|
59
|
-
|
|
56
|
+
imagemin(imageminPlugins)
|
|
60
57
|
)
|
|
61
58
|
.pipe(gulp.dest(minifyImagesConfig.dest))
|
|
62
59
|
);
|
|
@@ -65,5 +62,4 @@ module.exports = (gulp, plugins) => {
|
|
|
65
62
|
|
|
66
63
|
return streams.length ? ordered(streams) : Promise.resolve('resolved');
|
|
67
64
|
};
|
|
68
|
-
/* eslint-enable complexity */
|
|
69
65
|
};
|
package/tasks/watch-assets.js
CHANGED
|
@@ -9,11 +9,6 @@ module.exports = (gulp) => {
|
|
|
9
9
|
const projectPath = utils.getProjectPath();
|
|
10
10
|
|
|
11
11
|
return () => {
|
|
12
|
-
const browserSync = utils.getBrowserSyncInstance();
|
|
13
|
-
const reloadBrowser = (done) => {
|
|
14
|
-
browserSync.reload('*.html');
|
|
15
|
-
done();
|
|
16
|
-
};
|
|
17
12
|
const options = {
|
|
18
13
|
delay,
|
|
19
14
|
cwd: projectPath,
|
|
@@ -37,21 +32,6 @@ module.exports = (gulp) => {
|
|
|
37
32
|
.filter(Boolean)
|
|
38
33
|
: [];
|
|
39
34
|
|
|
40
|
-
if (config.get('nitro.mode.livereload')) {
|
|
41
|
-
gulp.watch(
|
|
42
|
-
[
|
|
43
|
-
`src/views/**/*.${config.get('nitro.viewFileExtension')}`,
|
|
44
|
-
`${config.get('nitro.viewDataDirectory')}/**/*.json`,
|
|
45
|
-
`src/patterns/**/*.${config.get('nitro.viewFileExtension')}`,
|
|
46
|
-
'!src/patterns/**/template/**/*.hbs',
|
|
47
|
-
'src/patterns/**/schema.json',
|
|
48
|
-
'src/patterns/**/_data/*.json',
|
|
49
|
-
],
|
|
50
|
-
options,
|
|
51
|
-
reloadBrowser
|
|
52
|
-
);
|
|
53
|
-
}
|
|
54
|
-
|
|
55
35
|
if (copyAssetsSrc.length) {
|
|
56
36
|
gulp.watch(copyAssetsSrc, options, gulp.series('copy-assets'));
|
|
57
37
|
}
|
package/tasks/watch-serve.js
DELETED
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
const config = require('config');
|
|
4
|
-
const utils = require('../lib/utils');
|
|
5
|
-
const compression = require('compression');
|
|
6
|
-
|
|
7
|
-
module.exports = () => {
|
|
8
|
-
return () => {
|
|
9
|
-
const browserSync = utils.getBrowserSyncInstance();
|
|
10
|
-
// fallback port for older config
|
|
11
|
-
const port = config.has('server.proxy.port') ? config.get('server.proxy.port') : config.get('server.proxy');
|
|
12
|
-
const browserSyncConfig = {
|
|
13
|
-
watch: false,
|
|
14
|
-
proxy: {
|
|
15
|
-
target: `127.0.0.1:${config.get('server.port')}`,
|
|
16
|
-
middleware: [compression()],
|
|
17
|
-
},
|
|
18
|
-
port: Number(port),
|
|
19
|
-
online: !config.get('nitro.mode.offline'),
|
|
20
|
-
ghostMode: false,
|
|
21
|
-
};
|
|
22
|
-
|
|
23
|
-
if (config.has('server.proxy.https')) {
|
|
24
|
-
browserSyncConfig.https = config.get('server.proxy.https');
|
|
25
|
-
}
|
|
26
|
-
if (config.has('server.proxy.host')) {
|
|
27
|
-
browserSyncConfig.host = config.get('server.proxy.host');
|
|
28
|
-
}
|
|
29
|
-
if (config.has('server.proxy.open')) {
|
|
30
|
-
browserSyncConfig.open = config.get('server.proxy.open');
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
browserSync.init(browserSyncConfig, (e) => {
|
|
34
|
-
if (!e) {
|
|
35
|
-
browserSync.notify('Compiling your assets, please wait!');
|
|
36
|
-
}
|
|
37
|
-
});
|
|
38
|
-
};
|
|
39
|
-
};
|