From e99aefb50ca63e2dbcc95841efbb53cea90151d8 Mon Sep 17 00:00:00 2001 From: Tim Baumann Date: Sat, 23 Sep 2017 22:02:01 +0200 Subject: Add compile step that bundles and compresses JS files (#684) * Add compile step that bundles and compresses JS files Also, manage dependencies on third-party JS libraries using NPM. * Compile JS from TypeScript * Enable 'noImplicitAny' in TypeScript * QuickJump: use JSX syntax * Generate source maps from TypeScript for easier debugging * TypeScript: more accurate type * Separate quick jump css file from ocean theme --- haddock-api/resources/html/gulpfile.js | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 haddock-api/resources/html/gulpfile.js (limited to 'haddock-api/resources/html/gulpfile.js') diff --git a/haddock-api/resources/html/gulpfile.js b/haddock-api/resources/html/gulpfile.js new file mode 100644 index 00000000..c7cb6782 --- /dev/null +++ b/haddock-api/resources/html/gulpfile.js @@ -0,0 +1,27 @@ +const gulp = require('gulp'); +const uglify = require('gulp-uglify'); +const browserify = require('browserify'); +const source = require('vinyl-source-stream'); +const buffer = require('vinyl-buffer'); +const tsify = require('tsify'); +const sourcemaps = require('gulp-sourcemaps'); + +function buildJS(targetFileName, files) { + var b = browserify({ entries: files, debug: true }); + return b + .plugin(tsify) + .bundle() + .pipe(source(targetFileName)) + .pipe(buffer()) + .pipe(sourcemaps.init({loadMaps: true})) + .pipe(uglify().on('error', function(e) { console.log(e); })) + .pipe(sourcemaps.write('.')) + .pipe(gulp.dest('.')); +} + +gulp.task('build-js', function() { + buildJS('quick-jump.min.js', ['./js-src/quick-jump.tsx']); + buildJS('haddock-bundle.min.js', ['./js-src/init.ts']); +}); + +gulp.task('default', ['build-js']); \ No newline at end of file -- cgit v1.2.3