10000 Add SVG, CSS, JS minification · sin/unifiedjs.github.io@05032ab · GitHub
[go: up one dir, main page]

Skip to content

Commit 05032ab

Browse files
committed
Add SVG, CSS, JS minification
1 parent 1c43433 commit 05032ab

File tree

9 files changed

+76
-19
lines changed

9 files changed

+76
-19
lines changed

package.json

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,8 @@
1717
"bail": "^1.0.1",
1818
"browserify": "^14.0.0",
1919
"budo": "^10.0.0",
20+
"bundle-collapser": "^1.2.1",
21+
"cssnano": "^3.10.0",
2022
"dictionary-en-gb": "^1.2.1",
2123
"glob": "^7.0.6",
2224
"hast-util-find-and-replace": "^1.0.0",
@@ -57,9 +59,11 @@
5759
"strip-comments": "^0.4.4",
5860
"stylelint": "^7.10.1",
5961
"stylelint-config-standard": "^16.0.0",
62+
"svgo": "^0.7.2",
6063
"to-vfile": "^2.1.0",
6164
"trim": "0.0.1",
6265
"trough": "^1.0.0",
66+
"uglify-js": "^3.0.23",
6367
"unified": "^6.1.0",
6468
"unist-util-visit": "^1.1.0",
6569
"vfile-reporter": "^3.0.0",

script/externals.js

Lines changed: 0 additions & 1 deletion
This file was deleted.

script/externals/css.js

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
'use strict';
2+
3+
var trough = require('trough');
4+
var cssnano = require('cssnano');
5+
6+
module.exports = trough().use(transform);
7+
8+
function transform(file) {
9+
return cssnano.process(file.toString('utf8')).then(function (result) {
10+
file.contents = result.css;
11+
});
12+
}

script/externals/index.js

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line n 8000 umberDiff line change
@@ -0,0 +1,5 @@
1+
'use strict';
2+
3+
exports['.css'] = require('./css');
4+
exports['.svg'] = require('./svg');
5+
exports['.js'] = require('./js');

script/externals/js.js

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
'use strict';
2+
3+
var trough = require('trough');
4+
var browserify = require('browserify');
5+
var Uglify = require('uglify-js');
6+
7+
module.exports = trough()
8+
.use(bundle)
9+
.use(mangle);
10+
11+
function bundle(file, next) {
12+
brow 8000 serify(file.path)
13+
.plugin('bundle-collapser/plugin')
14+
.bundle(done);
15+
16+
function done(err, buf) {
17+
if (buf) {
18+
file.contents = String(buf);
19+
}
20+
21+
next(err);
22+
}
23+
}
24+
25+
function mangle(file) {
26+
file.contents = Uglify.minify(file.contents, {toplevel: true}).code;
27+
}

script/externals/svg.js

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
'use strict';
2+
3+
var SVGO = require('svgo');
4+
var trough = require('trough');
5+
6+
var svgo = new SVGO({
7+
multipass: true
8+
});
9+
10+
module.exports = trough().use(transform);
11+
12+
function transform(file, next) {
13+
svgo.optimize(file.toString('utf8'), function (res) {
14+
if (res.data) {
15+
file.contents = res.data;
16+
}
17+
18+
next();
19+
});
20+
}

script/index.js

Lines changed: 6 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -12,19 +12,16 @@ var externals = require('./externals');
1212
var filePipeline = trough()
1313
.use(vfile.read)
1414
.use(function (file, next) {
15-
var ext = file.extname.slice(1);
16-
var processor = processors[ext];
17-
var external = externals[ext];
15+
var ext = file.extname;
1816

19-
if (processor) {
20-
processor().process(file, function (err) {
21-
file.extname = processor.extname;
17+
if (ext in processors) {
18+
processors[ext]().process(file, function (err) {
19+
file.extname = processors[ext].extname;
2220
file.processed = true;
2321
next(err);
2422
});
25-
} else if (external) {
26-
external(file, function (err, contents) {
27-
file.contents = contents;
23+
} else if (ext in externals) {
24+
externals[ext].run(file, function (err) {
2825
file.processed = true;
2926
next(err);
3027
});

script/javascript/index.js

Lines changed: 0 additions & 7 deletions
This file was deleted.

script/process.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
1-
exports.md = require('./markdown');
2-
exports.html = require('./html');
1+
exports['.md'] = require('./markdown');
2+
exports['.html'] = require('./html');

0 commit comments

Comments
 (0)
0