Skip to content

Commit

Permalink
esm - drop need for manual concat (microsoft#230571)
Browse files Browse the repository at this point in the history
  • Loading branch information
bpasero authored Oct 6, 2024
1 parent bda2706 commit dc265ad
Show file tree
Hide file tree
Showing 11 changed files with 340 additions and 386 deletions.
6 changes: 5 additions & 1 deletion build/buildfile.js
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,11 @@ exports.code = [
// 'vs/code/node/cli' is not included here because it comes in via ./src/cli.js
createModuleDescription('vs/code/node/cliProcessMain'),
createModuleDescription('vs/code/electron-utility/sharedProcess/sharedProcessMain'),
createModuleDescription('vs/code/electron-sandbox/processExplorer/processExplorerMain')
createModuleDescription('vs/code/electron-sandbox/processExplorer/processExplorerMain'),
createModuleDescription('vs/code/electron-sandbox/workbench/workbench'),
// TODO: @justchen https://github.com/microsoft/vscode/issues/213332 make sure to remove when we use window.open on desktop.
createModuleDescription('vs/workbench/contrib/issue/electron-sandbox/issueReporter'),
createModuleDescription('vs/code/electron-sandbox/processExplorer/processExplorer')
];

exports.codeWeb = createModuleDescription('vs/code/browser/workbench/workbench');
Expand Down
4 changes: 2 additions & 2 deletions build/gulpfile.editor.js
Original file line number Diff line number Diff line change
Expand Up @@ -89,7 +89,7 @@ const extractEditorSrcTask = task.define('extract-editor-src', () => {
// Disable NLS task to remove english strings to preserve backwards compatibility when we removed the `vs/nls!` AMD plugin.
const compileEditorAMDTask = task.define('compile-editor-amd', compilation.compileTask('out-editor-src', 'out-editor-build', true, { disableMangle: true, preserveEnglish: true }));

const optimizeEditorAMDTask = task.define('optimize-editor-amd', optimize.optimizeTask(
const bundleEditorAMDTask = task.define('bundle-editor-amd', optimize.bundleTask(
{
out: 'out-editor',
esm: {
Expand Down Expand Up @@ -359,7 +359,7 @@ gulp.task('editor-distro',
task.parallel(
task.series(
compileEditorAMDTask,
optimizeEditorAMDTask,
bundleEditorAMDTask,
minifyEditorAMDTask
),
task.series(
Expand Down
8 changes: 4 additions & 4 deletions build/gulpfile.reh.js
Original file line number Diff line number Diff line change
Expand Up @@ -433,9 +433,9 @@ function tweakProductForServerWeb(product) {
}

['reh', 'reh-web'].forEach(type => {
const optimizeTask = task.define(`optimize-vscode-${type}`, task.series(
const bundleTask = task.define(`bundle-vscode-${type}`, task.series(
util.rimraf(`out-vscode-${type}`),
optimize.optimizeTask(
optimize.bundleTask(
{
out: `out-vscode-${type}`,
esm: {
Expand All @@ -452,7 +452,7 @@ function tweakProductForServerWeb(product) {
));

const minifyTask = task.define(`minify-vscode-${type}`, task.series(
optimizeTask,
bundleTask,
util.rimraf(`out-vscode-${type}-min`),
optimize.minifyTask(`out-vscode-${type}`, `https://main.vscode-cdn.net/sourcemaps/${commit}/core`)
));
Expand All @@ -478,7 +478,7 @@ function tweakProductForServerWeb(product) {
compileBuildTask,
compileExtensionsBuildTask,
compileExtensionMediaBuildTask,
minified ? minifyTask : optimizeTask,
minified ? minifyTask : bundleTask,
serverTaskCI
));
gulp.task(serverTask);
Expand Down
45 changes: 25 additions & 20 deletions build/gulpfile.vscode.js
Original file line number Diff line number Diff line change
Expand Up @@ -119,26 +119,19 @@ const vscodeResources = [
'!**/test/**'
];

// Do not change the order of these files! They will
// be inlined into the target window file in this order
// and they depend on each other in this way.
const windowBootstrapFiles = [
'out-build/bootstrap-window.js'
];

const bootstrapEntryPoints = [
'out-build/main.js',
'out-build/cli.js',
'out-build/bootstrap-fork.js'
];

const optimizeVSCodeTask = task.define('optimize-vscode', task.series(
const bundleVSCodeTask = task.define('bundle-vscode', task.series(
util.rimraf('out-vscode'),
// Optimize: bundles source files automatically based on
// import statements based on the passed in entry points.
// In addition, concat window related bootstrap files into
// a single file.
optimize.optimizeTask(
optimize.bundleTask(
{
out: 'out-vscode',
esm: {
Expand All @@ -147,22 +140,34 @@ const optimizeVSCodeTask = task.define('optimize-vscode', task.series(
...vscodeEntryPoints,
...bootstrapEntryPoints
],
resources: vscodeResources
},
manual: [
{ src: [...windowBootstrapFiles, 'out-build/vs/code/electron-sandbox/workbench/workbench.js'], out: 'vs/code/electron-sandbox/workbench/workbench.js' },
// TODO: @justchen https://github.com/microsoft/vscode/issues/213332 make sure to remove when we use window.open on desktop.
{ src: [...windowBootstrapFiles, 'out-build/vs/workbench/contrib/issue/electron-sandbox/issueReporter.js'], out: 'vs/workbench/contrib/issue/electron-sandbox/issueReporter.js' },
{ src: [...windowBootstrapFiles, 'out-build/vs/code/electron-sandbox/processExplorer/processExplorer.js'], out: 'vs/code/electron-sandbox/processExplorer/processExplorer.js' }
]
resources: vscodeResources,
fileContentMapper: filePath => {
if (
filePath.endsWith('vs/code/electron-sandbox/workbench/workbench.js') ||
// TODO: @justchen https://github.com/microsoft/vscode/issues/213332 make sure to remove when we use window.open on desktop
filePath.endsWith('vs/workbench/contrib/issue/electron-sandbox/issueReporter.js') ||
filePath.endsWith('vs/code/electron-sandbox/processExplorer/processExplorer.js')) {
return async (content) => {
const bootstrapWindowContent = await fs.promises.readFile(path.join(root, 'out-build', 'bootstrap-window.js'), 'utf-8');
return `${bootstrapWindowContent}\n${content}`; // prepend bootstrap-window.js content to entry points that are Electron windows
};
}
return undefined;
},
skipTSBoilerplateRemoval: entryPoint =>
entryPoint === 'vs/code/electron-sandbox/workbench/workbench' ||
// TODO: @justchen https://github.com/microsoft/vscode/issues/213332 make sure to remove when we use window.open on desktop
entryPoint === 'vs/workbench/contrib/issue/electron-sandbox/issueReporter' ||
entryPoint === 'vs/code/electron-sandbox/processExplorer/processExplorer',
}
}
)
));
gulp.task(optimizeVSCodeTask);
gulp.task(bundleVSCodeTask);

const sourceMappingURLBase = `https://main.vscode-cdn.net/sourcemaps/${commit}`;
const minifyVSCodeTask = task.define('minify-vscode', task.series(
optimizeVSCodeTask,
bundleVSCodeTask,
util.rimraf('out-vscode-min'),
optimize.minifyTask('out-vscode', `${sourceMappingURLBase}/core`)
));
Expand Down Expand Up @@ -505,7 +510,7 @@ BUILD_TARGETS.forEach(buildTarget => {
compileBuildTask,
compileExtensionsBuildTask,
compileExtensionMediaBuildTask,
minified ? minifyVSCodeTask : optimizeVSCodeTask,
minified ? minifyVSCodeTask : bundleVSCodeTask,
vscodeTaskCI
));
gulp.task(vscodeTask);
Expand Down
8 changes: 4 additions & 4 deletions build/gulpfile.vscode.web.js
Original file line number Diff line number Diff line change
Expand Up @@ -113,9 +113,9 @@ const createVSCodeWebFileContentMapper = (extensionsRoot, product) => {
};
exports.createVSCodeWebFileContentMapper = createVSCodeWebFileContentMapper;

const optimizeVSCodeWebTask = task.define('optimize-vscode-web', task.series(
const bundleVSCodeWebTask = task.define('bundle-vscode-web', task.series(
util.rimraf('out-vscode-web'),
optimize.optimizeTask(
optimize.bundleTask(
{
out: 'out-vscode-web',
esm: {
Expand All @@ -129,7 +129,7 @@ const optimizeVSCodeWebTask = task.define('optimize-vscode-web', task.series(
));

const minifyVSCodeWebTask = task.define('minify-vscode-web', task.series(
optimizeVSCodeWebTask,
bundleVSCodeWebTask,
util.rimraf('out-vscode-web-min'),
optimize.minifyTask('out-vscode-web', `https://main.vscode-cdn.net/sourcemaps/${commit}/core`)
));
Expand Down Expand Up @@ -216,7 +216,7 @@ const dashed = (/** @type {string} */ str) => (str ? `-${str}` : ``);

const vscodeWebTaskCI = task.define(`vscode-web${dashed(minified)}-ci`, task.series(
compileWebExtensionsBuildTask,
minified ? minifyVSCodeWebTask : optimizeVSCodeWebTask,
minified ? minifyVSCodeWebTask : bundleVSCodeWebTask,
util.rimraf(path.join(BUILD_ROOT, destinationFolderName)),
packageTask(sourceFolderName, destinationFolderName)
));
Expand Down
47 changes: 22 additions & 25 deletions build/lib/optimize.js

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading

0 comments on commit dc265ad

Please sign in to comment.