mirror of
https://github.com/microsoft/vscode.git
synced 2026-04-24 10:38:59 +01:00
Mangle exported symbols (#182935)
* Mangle exported functions For #180461 This prototype tries to mangle exported functions, saving a further 440kb from the bundle size * Fix missing call * Also try mangling top level exported consts too * Fixing errors * Don't run on build files * Skip a few more manglings and revert change to namespace * Skip a few more monaco files * Also mangle consts that shadow types This increases savings up to 3325 * Also mangle exported classes * Skip mangling more localization functions for now * Opt out pfs * Update build script * Run find locations task in parallel This should speed up compile * Cleanup before close * Limit workers to avoid hitting memory limit * Limit pool size * Skip one more mangling * Exclude entrypoints from mangling * Try to fix web build and clean up code * Exempt a few more projects * Exempt another file * Also exempt html * Skip mangling ext entrypoints * Use prefix that can't be confused with rpc calls * Fix max call stack error * Switch prefixes * Don't mangle ambient declarations * Use correct way of checking modifier flags * Workaround getCombinedModifierFlags not doing what I'd expect Maybe needs the checker to be enabled too? Just check parent chain instead for now * Clean up code and add logic showing how enum mangling could work * Remove a few more skipMangles Use entrypoints instead * Fix entrypoint name
This commit is contained in:
@@ -8,12 +8,12 @@ const fs = require('fs');
|
||||
const webpack = require('webpack');
|
||||
const fancyLog = require('fancy-log');
|
||||
const ansiColors = require('ansi-colors');
|
||||
const { Mangler } = require('../build/lib/mangleTypeScript');
|
||||
const { Mangler } = require('../build/lib/mangle/index');
|
||||
|
||||
/**
|
||||
* Map of project paths to mangled file contents
|
||||
*
|
||||
* @type {Map<string, Map<string, { out: string; sourceMap?: string }>>}
|
||||
* @type {Map<string, Promise<Map<string, { out: string; sourceMap?: string }>>>}
|
||||
*/
|
||||
const mangleMap = new Map();
|
||||
|
||||
@@ -55,7 +55,7 @@ module.exports = async function (source, sourceMap, meta) {
|
||||
|
||||
const callback = this.async();
|
||||
|
||||
const fileContentsMap = getMangledFileContents(options.configFile);
|
||||
const fileContentsMap = await getMangledFileContents(options.configFile);
|
||||
|
||||
const newContents = fileContentsMap.get(this.resourcePath);
|
||||
callback(null, newContents?.out ?? source, sourceMap, meta);
|
||||
|
||||
Reference in New Issue
Block a user