compile zmodem extension in gulp

This commit is contained in:
Felipe Gasper
2017-10-29 15:21:22 -05:00
parent 0ca1318284
commit cb7c6151e8
4 changed files with 10 additions and 44 deletions
+8 -25
View File
@@ -5,6 +5,7 @@
const browserify = require('browserify');
const buffer = require('vinyl-buffer');
const coveralls = require('gulp-coveralls');
const concat = require('gulp-concat');
const fs = require('fs-extra');
const gulp = require('gulp');
const path = require('path');
@@ -20,7 +21,6 @@ const util = require('gulp-util');
let buildDir = process.env.BUILD_DIR || 'build';
let tsProject = ts.createProject('tsconfig.json');
let tsProjectSearchAddon = ts.createProject('./src/addons/search/tsconfig.json');
let tsProjectZmodemAddon = ts.createProject('./src/addons/zmodem/tsconfig.json');
let srcDir = tsProject.config.compilerOptions.rootDir;
let outDir = tsProject.config.compilerOptions.outDir;
@@ -50,17 +50,13 @@ gulp.task('tsc', function () {
let tsResultSearchAddon = tsProjectSearchAddon.src().pipe(sourcemaps.init()).pipe(tsProjectSearchAddon());
let tscSearchAddon = tsResultSearchAddon.js.pipe(sourcemaps.write('.', {includeContent: false, sourceRoot: ''})).pipe(gulp.dest(`${outDir}/addons/search`));
fs.emptyDirSync(`${outDir}/addons/zmodem`);
let tsResultZmodemAddon = tsProjectZmodemAddon.src().pipe(sourcemaps.init()).pipe(tsProjectZmodemAddon());
let tscZmodemAddon = tsResultZmodemAddon.js.pipe(sourcemaps.write('.', {includeContent: false, sourceRoot: ''})).pipe(gulp.dest(`${outDir}/addons/zmodem`));
// Copy all addons from ${srcDir}/ to ${outDir}/
let copyAddons = gulp.src([`${srcDir}/addons/**/*`, `!${srcDir}/addons/search`, `!${srcDir}/addons/search/**`, `!${srcDir}/addons/zmodem`, `!${srcDir}/addons/zmodem/**`]).pipe(gulp.dest(`${outDir}/addons`));
let copyAddons = gulp.src([`${srcDir}/addons/**/*`, `!${srcDir}/addons/search`, `!${srcDir}/addons/search/**`]).pipe(gulp.dest(`${outDir}/addons`));
// Copy stylesheets from ${srcDir}/ to ${outDir}/
let copyStylesheets = gulp.src(`${srcDir}/**/*.css`).pipe(gulp.dest(outDir));
return merge(tsc, tscSearchAddon, tscZmodemAddon, copyAddons, copyStylesheets);
return merge(tsc, tscSearchAddon, copyAddons, copyStylesheets);
});
/**
@@ -110,35 +106,22 @@ gulp.task('browserify-addons', ['tsc'], function() {
.pipe(sourcemaps.write('./'))
.pipe(gulp.dest(buildDir));
let zmodemOptions = {
basedir: `${buildDir}/addons/zmodem`,
debug: true,
entries: [`${outDir}/addons/zmodem/zmodem.js`],
cache: {},
packageCache: {}
};
let zmodemBundle = browserify(zmodemOptions)
.external(path.join(outDir, 'Terminal.js'))
.bundle()
.pipe(source('./addons/zmodem/zmodem.js'))
.pipe(buffer())
.pipe(sourcemaps.init({loadMaps: true, sourceRoot: ''}))
.pipe(sourcemaps.write('./'))
.pipe(gulp.dest(buildDir));
let zmodemBundle = gulp.src([
'./node_modules/zmodem.js/dist/zmodem.js',
'./src/addons/zmodem/zmodem.js',
]).pipe( concat('zmodem.js') ).pipe( gulp.dest( `${buildDir}/addons/zmodem` ) );
// Copy all add-ons from outDir to buildDir
let copyAddons = gulp.src([
// Copy JS addons
`${outDir}/addons/**/*`,
// Exclude TS addons from copy as they are being built via browserify
`!${outDir}/addons/search`,
`!${outDir}/addons/search/**`,
`!${outDir}/addons/zmodem`,
`!${outDir}/addons/zmodem/**`,
]).pipe(gulp.dest(`${buildDir}/addons`));
return merge(searchBundle, zmodemBundle, copyAddons);
return merge(searchBundle, copyAddons);
});
gulp.task('instrument-test', function () {
+2 -1
View File
@@ -51,6 +51,7 @@
"glob": "^7.0.5",
"gulp": "3.9.1",
"gulp-cli": "^1.2.2",
"gulp-concat": "^2.6.1",
"gulp-coveralls": "^0.1.4",
"gulp-istanbul": "^1.1.1",
"gulp-mocha": "^3.0.1",
@@ -68,7 +69,7 @@
"typescript": "~2.4.0",
"vinyl-buffer": "^1.0.0",
"vinyl-source-stream": "^1.1.0",
"zmodem.js": "^0.1.4"
"zmodem.js": "^0.1.5"
},
"scripts": {
"prestart": "npm run build",
-10
View File
@@ -1,10 +0,0 @@
{
"compilerOptions": {
"module": "commonjs",
"target": "es6",
"rootDir": ".",
"outDir": "../../../lib/addons/zmodem/",
"sourceMap": true,
"removeComments": true
}
}
@@ -1,11 +1,3 @@
import { Zmodem } from '../../../node_modules/zmodem.js/dist/zmodem.js';
declare var exports: any;
declare var module: any;
declare var define: any;
declare var require: any;
declare var window: any;
/**
*
* Allow xterm.js to handle ZMODEM uploads and downloads.