install gulp to process code
This commit is contained in:
parent
24f6606c2c
commit
b6a3900ee2
1651 changed files with 253427 additions and 39 deletions
61
node_modules/gulp-terser/dist/gulpTerser.js
generated
vendored
Normal file
61
node_modules/gulp-terser/dist/gulpTerser.js
generated
vendored
Normal file
|
|
@ -0,0 +1,61 @@
|
|||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
const through2_1 = require("through2");
|
||||
const terser_1 = require("terser");
|
||||
const PluginError = require("plugin-error");
|
||||
const applySourceMap = require("vinyl-sourcemaps-apply");
|
||||
const PLUGIN_NAME = 'terser';
|
||||
/**
|
||||
* @param { MinifyOptions } gulpTerserOptions: gulp-terser configuration
|
||||
* @param { typeof minify | undefined } customMinifyFunc:custom minify function
|
||||
*/
|
||||
function gulpTerser(gulpTerserOptions = {}, customMinifyFunc) {
|
||||
const minifyFunc = customMinifyFunc !== null && customMinifyFunc !== void 0 ? customMinifyFunc : terser_1.minify;
|
||||
return (0, through2_1.obj)(async function (chunk, enc, callback) {
|
||||
if (chunk.isStream()) {
|
||||
this.emit('error', new PluginError(PLUGIN_NAME, 'Streams are not supported!'));
|
||||
return callback();
|
||||
}
|
||||
if (chunk.isBuffer()) {
|
||||
try {
|
||||
const terserOptions = { ...gulpTerserOptions };
|
||||
// SourceMap configuration
|
||||
if (chunk.sourceMap) {
|
||||
if (!terserOptions.sourceMap || terserOptions.sourceMap === true) {
|
||||
terserOptions.sourceMap = {};
|
||||
}
|
||||
terserOptions.sourceMap.filename = chunk.sourceMap.file;
|
||||
}
|
||||
const chunkString = chunk.contents.toString('utf8');
|
||||
let build = {};
|
||||
// gulp version compatibility
|
||||
if (('sourceMap' in chunk) && ('file' in chunk.sourceMap)) {
|
||||
build[chunk.sourceMap.file] = chunkString;
|
||||
}
|
||||
else {
|
||||
build = chunkString;
|
||||
}
|
||||
// Compressed code (terser5 is asynchronous, terser4 is synchronous)
|
||||
const minifyOutput = await minifyFunc(build, terserOptions);
|
||||
if ('error' in minifyOutput) {
|
||||
throw new Error(minifyOutput['error']['message']);
|
||||
}
|
||||
// Buffer
|
||||
if (minifyOutput.code) {
|
||||
chunk.contents = ('from' in Buffer) ? Buffer.from(minifyOutput.code) : new Buffer(minifyOutput.code);
|
||||
}
|
||||
// Output source-map
|
||||
if (chunk.sourceMap && minifyOutput.map) {
|
||||
applySourceMap(chunk, minifyOutput.map);
|
||||
}
|
||||
this.push(chunk);
|
||||
return callback();
|
||||
}
|
||||
catch (err) {
|
||||
this.emit('error', new PluginError(PLUGIN_NAME, err));
|
||||
return callback();
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
exports.default = gulpTerser;
|
||||
Loading…
Add table
Add a link
Reference in a new issue