Skip to content

Commit 76b3d95

Browse files
author
Raphael Brand
committed
🎨 preserve author comments in minified scripts
1 parent 3a9e6c5 commit 76b3d95

File tree

4 files changed

+56
-5
lines changed

4 files changed

+56
-5
lines changed

demo/Gulpfile.js

Lines changed: 40 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ var bsConfig = require('./bs-config.json');
55
var sass = require('gulp-sass');
66
var pug = require('gulp-pug');
77
var uglifyjs = require('gulp-uglify');
8+
var rename = require('gulp-rename');
89
var concat = require('gulp-concat');
910

1011
/**
@@ -50,9 +51,16 @@ gulp.task('sass', function () {
5051
});
5152

5253
gulp.task('js-vendor', function () {
53-
return gulp.src(['node_modules/requirejs/require.js'])
54-
.pipe(uglifyjs())
55-
.pipe(gulp.dest('./dist/js'))
54+
55+
var vendorConfig = require('./vendor.json');
56+
if (!vendorConfig ||
57+
(typeof vendorConfig.js.src == 'string' || vendorConfig.js.src.length === 0)) {
58+
throw new Error('no vendor scripts added. \nvendor.json:\nuse src["file.a.js"]')
59+
}
60+
return gulp.src(vendorConfig.js.src)
61+
.pipe(uglifyjs({ output: { comments: /^!|@preserve|@license|@cc_on/i } }))
62+
.pipe(rename({ suffix: '.min' }))
63+
.pipe(gulp.dest(vendorConfig.js.dest))
5664
});
5765

5866
gulp.task('js', function () {
@@ -66,7 +74,7 @@ gulp.task('js', function () {
6674
.pipe(reload({ stream: true }))
6775
});
6876

69-
gulp.task('vendor-scripts', ['js-vendor']);
77+
gulp.task('vendor-scripts', ['templates', 'js-vendor'], reload);
7078

7179
/**
7280
* Serve and watch the scss/pug files for changes
@@ -78,3 +86,31 @@ gulp.task('default', ['sass', 'js', 'templates'], function () {
7886
gulp.watch('./app/sass/*.sass', ['sass']);
7987
gulp.watch('./app/*.pug', ['pug-watch']);
8088
});
89+
90+
91+
/*
92+
gulp.task('uglify-vendor', function () {
93+
94+
console.dir(arguments);
95+
return;
96+
let optionFiles;
97+
98+
optionFiles = process.argv.filter((option, index, arr) => {
99+
if (/\-\-file/gi.test(arr[index - 1])) {
100+
//optionFile = index+1;
101+
return arr[index];
102+
}
103+
return false;
104+
});
105+
if (optionFiles.length) {
106+
optionFiles.map((src) => {
107+
console.log(src);
108+
return gulp.src(src) // could do this cli-wise with process.argv
109+
.pipe(uglifyjs({ output: { comments: /^!|@preserve|@license|@cc_on/i } }))
110+
.pipe(rename(src.replace(/.+\/(\w+)\.js$/gi, '$1.min.js')))
111+
.pipe(gulp.dest('./dist/js/vendor', { overwrite: true }));
112+
});
113+
}
114+
115+
});
116+
*/

demo/app/index.pug

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ html
33
title Canvas - Pacman-alike-playfield (work-in-progress)
44
link(href='https://fonts.googleapis.com/css?family=Fresca')
55
link(href='/css/main.css', rel='stylesheet')
6-
script(type='text/javascript', data-main='js/main', src='js/require.js')
6+
script(type='text/javascript', data-main='js/main', src='js/vendor/require.min.js')
77
body
88
.container
99
.jumbotron

demo/package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
"gulp": "^3.9.1",
2323
"gulp-concat": "^2.6.1",
2424
"gulp-pug": "^3.1.0",
25+
"gulp-rename": "^1.2.2",
2526
"gulp-sass": "^2.3.2",
2627
"gulp-uglify": "^3.0.0",
2728
"nodemon": "^1.11.0"

demo/vendor.json

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
{
2+
"js": {
3+
"src": [
4+
"node_modules/requirejs/require.js",
5+
"node_modules/three/build/three.min.js"
6+
],
7+
"dest": "./dist/js/vendor"
8+
},
9+
"css": {
10+
"src": [
11+
],
12+
"dest": "./dist/css/vendor"
13+
}
14+
}

0 commit comments

Comments
 (0)