diff options
| author | Oskar Nyberg <oskar@mullvad.net> | 2021-01-19 15:30:35 +0100 |
|---|---|---|
| committer | Oskar Nyberg <oskar@mullvad.net> | 2021-01-26 09:06:54 +0100 |
| commit | e11ed3e9d6a7251941084905be5f582c2bfa9a4d (patch) | |
| tree | 3c27f72af1fe26158f80bc11589d7ff5a840dc37 /gui/tasks/scripts.js | |
| parent | 2dcefcc1bfefacda59f647769b0dd751977d2c62 (diff) | |
| download | mullvadvpn-e11ed3e9d6a7251941084905be5f582c2bfa9a4d.tar.xz mullvadvpn-e11ed3e9d6a7251941084905be5f582c2bfa9a4d.zip | |
Add support for sourcemaps
Diffstat (limited to 'gui/tasks/scripts.js')
| -rw-r--r-- | gui/tasks/scripts.js | 66 |
1 files changed, 44 insertions, 22 deletions
diff --git a/gui/tasks/scripts.js b/gui/tasks/scripts.js index 120dd892e2..d32e704625 100644 --- a/gui/tasks/scripts.js +++ b/gui/tasks/scripts.js @@ -2,6 +2,7 @@ const { exec } = require('child_process'); const { dest, series, parallel } = require('gulp'); const ts = require('gulp-typescript'); const inject = require('gulp-inject-string'); +const sourcemaps = require('gulp-sourcemaps'); const TscWatchClient = require('tsc-watch/client'); const browserify = require('browserify'); const buffer = require('vinyl-buffer'); @@ -14,8 +15,8 @@ function makeWatchCompiler(onFirstSuccess) { const watch = new TscWatchClient(); watch.on('success', () => parallel( - browserifyRenderer, - browserifyPreload, + makeBrowserifyRenderer(true), + makeBrowserifyPreload(true), )(() => { if (firstBuild) { firstBuild = false; @@ -23,7 +24,7 @@ function makeWatchCompiler(onFirstSuccess) { } }), ); - watch.start('--noClear', '--inlineSourceMap', '--incremental', '--project', '.'); + watch.start('--noClear', '--sourceMap', '--inlineSources', '--incremental', '--project', '.'); return watch.tsc; }; compileScripts.displayName = 'compile-scripts-watch'; @@ -41,24 +42,44 @@ function compileScripts() { .pipe(dest('build')); } -function browserifyRenderer() { - return browserify({ entries: './build/src/renderer/index.js' }) - .bundle() - .pipe(source('bundle.js')) - .pipe(buffer()) - .pipe(dest('./build/src/renderer/')); +function makeBrowserifyRenderer(debug) { + const browserifyRenderer = () => { + let stream = browserify({ entries: './build/src/renderer/index.js', debug }) + .bundle() + .pipe(source('bundle.js')) + .pipe(buffer()); + + if (debug) { + stream = stream.pipe(sourcemaps.init({ loadMaps: true })).pipe(sourcemaps.write()); + } + + return stream.pipe(dest('./build/src/renderer/')); + }; + + browserifyRenderer.displayName = 'browserify-renderer'; + return browserifyRenderer; } -function browserifyPreload() { - return browserify({ - entries: './build/src/renderer/preload.js', - }) - .exclude('fs') - .exclude('electron') - .bundle() - .pipe(source('preloadBundle.js')) - .pipe(buffer()) - .pipe(dest('./build/src/renderer/')); +function makeBrowserifyPreload(debug) { + const browserifyPreload = () => { + let stream = browserify({ + entries: './build/src/renderer/preload.js', + debug, + }) + .exclude('electron') + .bundle() + .pipe(source('preloadBundle.js')) + .pipe(buffer()); + + if (debug) { + stream = stream.pipe(sourcemaps.init({ loadMaps: true })).pipe(sourcemaps.write()); + } + + return stream.pipe(dest('./build/src/renderer/')); + }; + + browserifyPreload.displayName = 'browserify-preload'; + return browserifyPreload; } function buildProto(callback) { @@ -66,10 +87,11 @@ function buildProto(callback) { } compileScripts.displayName = 'compile-scripts'; -browserifyRenderer.displayName = 'browserify-renderer'; -browserifyPreload.displayName = 'browserify-preload'; buildProto.displayName = 'build-proto'; -exports.build = series(compileScripts, parallel(browserifyPreload, browserifyRenderer)); +exports.build = series( + compileScripts, + parallel(makeBrowserifyPreload(false), makeBrowserifyRenderer(false)), +); exports.buildProto = buildProto; exports.makeWatchCompiler = makeWatchCompiler; |
