update esbuild
This commit is contained in:
parent
aaa8fa92c6
commit
22b9a2b1e8
|
@ -9,7 +9,6 @@ const es = require("event-stream");
|
|||
const gulp = require("gulp");
|
||||
const concat = require("gulp-concat");
|
||||
const filter = require("gulp-filter");
|
||||
const flatmap = require("gulp-flatmap");
|
||||
const fancyLog = require("fancy-log");
|
||||
const ansiColors = require("ansi-colors");
|
||||
const path = require("path");
|
||||
|
@ -162,58 +161,31 @@ function optimizeTask(opts) {
|
|||
};
|
||||
}
|
||||
exports.optimizeTask = optimizeTask;
|
||||
// declare class FileWithCopyright extends VinylFile {
|
||||
// public __hasOurCopyright: boolean;
|
||||
// }
|
||||
/**
|
||||
* Wrap around uglify and allow the preserveComments function
|
||||
* to have a file "context" to include our copyright only once per file.
|
||||
*/
|
||||
function uglifyWithCopyrights() {
|
||||
const esbuild = require('gulp-esbuild');
|
||||
// const preserveComments = (f: FileWithCopyright) => {
|
||||
// return (_node: any, comment: { value: string; type: string; }) => {
|
||||
// const text = comment.value;
|
||||
// const type = comment.type;
|
||||
// if (/@minifier_do_not_preserve/.test(text)) {
|
||||
// return false;
|
||||
// }
|
||||
// const isOurCopyright = IS_OUR_COPYRIGHT_REGEXP.test(text);
|
||||
// if (isOurCopyright) {
|
||||
// if (f.__hasOurCopyright) {
|
||||
// return false;
|
||||
// }
|
||||
// f.__hasOurCopyright = true;
|
||||
// return true;
|
||||
// }
|
||||
// if ('comment2' === type) {
|
||||
// // check for /*!. Note that text doesn't contain leading /*
|
||||
// return (text.length > 0 && text[0] === '!') || /@preserve|license|@cc_on|copyright/i.test(text);
|
||||
// } else if ('comment1' === type) {
|
||||
// return /license|copyright/i.test(text);
|
||||
// }
|
||||
// return false;
|
||||
// };
|
||||
// };
|
||||
const input = es.through();
|
||||
const output = input
|
||||
.pipe(flatmap((stream, f) => {
|
||||
return stream.pipe(esbuild({
|
||||
outfile: f.relative,
|
||||
sourcemap: true,
|
||||
minify: true,
|
||||
}));
|
||||
}));
|
||||
return es.duplex(input, output);
|
||||
}
|
||||
function minifyTask(src, sourceMapBaseUrl) {
|
||||
const esbuild = require('esbuild');
|
||||
const sourceMappingURL = sourceMapBaseUrl ? ((f) => `${sourceMapBaseUrl}/${f.relative}.map`) : undefined;
|
||||
return cb => {
|
||||
const minifyCSS = require('gulp-cssnano');
|
||||
const sourcemaps = require('gulp-sourcemaps');
|
||||
const jsFilter = filter('**/*.js', { restore: true });
|
||||
const cssFilter = filter('**/*.css', { restore: true });
|
||||
pump(gulp.src([src + '/**', '!' + src + '/**/*.map']), jsFilter, sourcemaps.init({ loadMaps: true }), uglifyWithCopyrights(), jsFilter.restore, cssFilter, minifyCSS({ reduceIdents: false }), cssFilter.restore, sourcemaps.mapSources((sourcePath) => {
|
||||
pump(gulp.src([src + '/**', '!' + src + '/**/*.map']), jsFilter, sourcemaps.init({ loadMaps: true }), es.map((f, cb) => {
|
||||
esbuild.build({
|
||||
entryPoints: [f.path],
|
||||
minify: true,
|
||||
sourcemap: 'external',
|
||||
outdir: '.',
|
||||
platform: 'node',
|
||||
target: ['node12.18'],
|
||||
write: false
|
||||
}).then(res => {
|
||||
const jsFile = res.outputFiles.find(f => /\.js$/.test(f.path));
|
||||
const sourceMapFile = res.outputFiles.find(f => /\.js\.map$/.test(f.path));
|
||||
f.contents = Buffer.from(jsFile.contents);
|
||||
f.sourceMap = JSON.parse(sourceMapFile.text);
|
||||
cb(undefined, f);
|
||||
}, cb);
|
||||
}), jsFilter.restore, cssFilter, minifyCSS({ reduceIdents: false }), cssFilter.restore, sourcemaps.mapSources((sourcePath) => {
|
||||
if (sourcePath === 'bootstrap-fork.js') {
|
||||
return 'bootstrap-fork.orig.js';
|
||||
}
|
||||
|
|
|
@ -9,7 +9,6 @@ import * as es from 'event-stream';
|
|||
import * as gulp from 'gulp';
|
||||
import * as concat from 'gulp-concat';
|
||||
import * as filter from 'gulp-filter';
|
||||
import * as flatmap from 'gulp-flatmap';
|
||||
import * as fancyLog from 'fancy-log';
|
||||
import * as ansiColors from 'ansi-colors';
|
||||
import * as path from 'path';
|
||||
|
@ -232,61 +231,8 @@ export function optimizeTask(opts: IOptimizeTaskOpts): () => NodeJS.ReadWriteStr
|
|||
};
|
||||
}
|
||||
|
||||
// declare class FileWithCopyright extends VinylFile {
|
||||
// public __hasOurCopyright: boolean;
|
||||
// }
|
||||
/**
|
||||
* Wrap around uglify and allow the preserveComments function
|
||||
* to have a file "context" to include our copyright only once per file.
|
||||
*/
|
||||
function uglifyWithCopyrights(): NodeJS.ReadWriteStream {
|
||||
const esbuild = require('gulp-esbuild') as typeof import('gulp-esbuild');
|
||||
|
||||
// const preserveComments = (f: FileWithCopyright) => {
|
||||
// return (_node: any, comment: { value: string; type: string; }) => {
|
||||
// const text = comment.value;
|
||||
// const type = comment.type;
|
||||
|
||||
// if (/@minifier_do_not_preserve/.test(text)) {
|
||||
// return false;
|
||||
// }
|
||||
|
||||
// const isOurCopyright = IS_OUR_COPYRIGHT_REGEXP.test(text);
|
||||
|
||||
// if (isOurCopyright) {
|
||||
// if (f.__hasOurCopyright) {
|
||||
// return false;
|
||||
// }
|
||||
// f.__hasOurCopyright = true;
|
||||
// return true;
|
||||
// }
|
||||
|
||||
// if ('comment2' === type) {
|
||||
// // check for /*!. Note that text doesn't contain leading /*
|
||||
// return (text.length > 0 && text[0] === '!') || /@preserve|license|@cc_on|copyright/i.test(text);
|
||||
// } else if ('comment1' === type) {
|
||||
// return /license|copyright/i.test(text);
|
||||
// }
|
||||
// return false;
|
||||
// };
|
||||
// };
|
||||
|
||||
const input = es.through();
|
||||
const output = input
|
||||
.pipe(flatmap((stream, f) => {
|
||||
return stream.pipe(esbuild({
|
||||
outfile: f.relative,
|
||||
sourcemap: true,
|
||||
minify: true,
|
||||
platform: 'node',
|
||||
target: ['node12.18']
|
||||
}));
|
||||
}));
|
||||
|
||||
return es.duplex(input, output);
|
||||
}
|
||||
|
||||
export function minifyTask(src: string, sourceMapBaseUrl?: string): (cb: any) => void {
|
||||
const esbuild = require('esbuild') as typeof import('esbuild');
|
||||
const sourceMappingURL = sourceMapBaseUrl ? ((f: any) => `${sourceMapBaseUrl}/${f.relative}.map`) : undefined;
|
||||
|
||||
return cb => {
|
||||
|
@ -300,7 +246,25 @@ export function minifyTask(src: string, sourceMapBaseUrl?: string): (cb: any) =>
|
|||
gulp.src([src + '/**', '!' + src + '/**/*.map']),
|
||||
jsFilter,
|
||||
sourcemaps.init({ loadMaps: true }),
|
||||
uglifyWithCopyrights(),
|
||||
es.map((f: any, cb) => {
|
||||
esbuild.build({
|
||||
entryPoints: [f.path],
|
||||
minify: true,
|
||||
sourcemap: 'external',
|
||||
outdir: '.',
|
||||
platform: 'node',
|
||||
target: ['node12.18'],
|
||||
write: false
|
||||
}).then(res => {
|
||||
const jsFile = res.outputFiles.find(f => /\.js$/.test(f.path))!;
|
||||
const sourceMapFile = res.outputFiles.find(f => /\.js\.map$/.test(f.path))!;
|
||||
|
||||
f.contents = Buffer.from(jsFile.contents);
|
||||
f.sourceMap = JSON.parse(sourceMapFile.text);
|
||||
|
||||
cb(undefined, f);
|
||||
}, cb);
|
||||
}),
|
||||
jsFilter.restore,
|
||||
cssFilter,
|
||||
minifyCSS({ reduceIdents: false }),
|
||||
|
|
|
@ -34,9 +34,11 @@
|
|||
"applicationinsights": "1.0.8",
|
||||
"azure-storage": "^2.1.0",
|
||||
"electron-osx-sign": "^0.4.16",
|
||||
"esbuild": "^0.8.30",
|
||||
"iconv-lite-umd": "0.6.8",
|
||||
"jsonc-parser": "^2.3.0",
|
||||
"mime": "^1.4.1",
|
||||
"source-map": "0.6.1",
|
||||
"typescript": "4.2.0-dev.20201207",
|
||||
"vsce": "1.48.0"
|
||||
},
|
||||
|
@ -46,7 +48,5 @@
|
|||
"postinstall": "npm run compile",
|
||||
"npmCheckJs": "tsc --noEmit"
|
||||
},
|
||||
"dependencies": {
|
||||
"source-map": "0.6.1"
|
||||
}
|
||||
"dependencies": {}
|
||||
}
|
||||
|
|
|
@ -679,6 +679,11 @@ entities@^1.1.1, entities@~1.1.1:
|
|||
resolved "https://registry.yarnpkg.com/entities/-/entities-1.1.2.tgz#bdfa735299664dfafd34529ed4f8522a275fea56"
|
||||
integrity sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==
|
||||
|
||||
esbuild@^0.8.30:
|
||||
version "0.8.30"
|
||||
resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.8.30.tgz#3d057ff9ffe6d5d30bccb0afe8cc92a2e69622d3"
|
||||
integrity sha512-gCJQYUMO9QNrfpNOIiCnFoX41nWiPFCvURBQF+qWckyJ7gmw2xCShdKCXvS+RZcQ5krcxEOLIkzujqclePKhfw==
|
||||
|
||||
eslint-scope@^5.0.0:
|
||||
version "5.0.0"
|
||||
resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.0.0.tgz#e87c8887c73e8d1ec84f1ca591645c358bfc8fb9"
|
||||
|
|
|
@ -135,7 +135,6 @@
|
|||
"gulp-buffer": "0.0.2",
|
||||
"gulp-concat": "^2.6.1",
|
||||
"gulp-cssnano": "^2.1.3",
|
||||
"gulp-esbuild": "^0.3.12",
|
||||
"gulp-eslint": "^5.0.0",
|
||||
"gulp-filter": "^5.1.0",
|
||||
"gulp-flatmap": "^1.0.2",
|
||||
|
|
26
yarn.lock
26
yarn.lock
|
@ -3194,11 +3194,6 @@ es6-weak-map@^2.0.1:
|
|||
es6-iterator "^2.0.1"
|
||||
es6-symbol "^3.1.1"
|
||||
|
||||
esbuild@^0.8.29:
|
||||
version "0.8.29"
|
||||
resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.8.29.tgz#cc20fb752e0905a3546d68ae1be58f9b97044c39"
|
||||
integrity sha512-UDsEoeXuctVgG2hEts1Hwq2jYDGqV7nksEHEZaiCy2v+lXF5ButX4ErPAJAFi5ZNKKW+6Pom93pArV7hki6HnQ==
|
||||
|
||||
escalade@^3.0.2:
|
||||
version "3.0.2"
|
||||
resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.0.2.tgz#6a580d70edb87880f22b4c91d0d56078df6962c4"
|
||||
|
@ -4583,15 +4578,6 @@ gulp-cssnano@^2.1.3:
|
|||
plugin-error "^1.0.1"
|
||||
vinyl-sourcemaps-apply "^0.2.1"
|
||||
|
||||
gulp-esbuild@^0.3.12:
|
||||
version "0.3.12"
|
||||
resolved "https://registry.yarnpkg.com/gulp-esbuild/-/gulp-esbuild-0.3.12.tgz#3b8b8e8110b445af76b3fb145fc208d86a6d0ef5"
|
||||
integrity sha512-gUNMGMnfvF7tHvJilpXqH67phe25jVDnstqQQ69mS7DsPtI4LKPnF8y5o0rt56ww8+Pf9MmT+sKJfErqUGt+RA==
|
||||
dependencies:
|
||||
esbuild "^0.8.29"
|
||||
plugin-error "^1.0.1"
|
||||
vinyl "^2.2.1"
|
||||
|
||||
gulp-eslint@^5.0.0:
|
||||
version "5.0.0"
|
||||
resolved "https://registry.yarnpkg.com/gulp-eslint/-/gulp-eslint-5.0.0.tgz#2a2684095f774b2cf79310262078c56cc7a12b52"
|
||||
|
@ -10638,18 +10624,6 @@ vinyl@^2.0.2, vinyl@^2.2.0:
|
|||
remove-trailing-separator "^1.0.1"
|
||||
replace-ext "^1.0.0"
|
||||
|
||||
vinyl@^2.2.1:
|
||||
version "2.2.1"
|
||||
resolved "https://registry.yarnpkg.com/vinyl/-/vinyl-2.2.1.tgz#23cfb8bbab5ece3803aa2c0a1eb28af7cbba1974"
|
||||
integrity sha512-LII3bXRFBZLlezoG5FfZVcXflZgWP/4dCwKtxd5ky9+LOtM4CS3bIRQsmR1KMnMW07jpE8fqR2lcxPZ+8sJIcw==
|
||||
dependencies:
|
||||
clone "^2.1.1"
|
||||
clone-buffer "^1.0.0"
|
||||
clone-stats "^1.0.0"
|
||||
cloneable-readable "^1.0.0"
|
||||
remove-trailing-separator "^1.0.1"
|
||||
replace-ext "^1.0.0"
|
||||
|
||||
vinyl@~2.0.1:
|
||||
version "2.0.2"
|
||||
resolved "https://registry.yarnpkg.com/vinyl/-/vinyl-2.0.2.tgz#0a3713d8d4e9221c58f10ca16c0116c9e25eda7c"
|
||||
|
|
Loading…
Reference in a new issue