mirror of
https://github.com/microsoft/vscode.git
synced 2025-12-24 12:19:20 +00:00
esm - introduce VSCODE_BUILD_ESM variable (#225586)
This commit is contained in:
@@ -33,6 +33,7 @@ const minimist = require('minimist');
|
||||
const { compileBuildTask } = require('./gulpfile.compile');
|
||||
const { compileExtensionsBuildTask, compileExtensionMediaBuildTask } = require('./gulpfile.extensions');
|
||||
const { promisify } = require('util');
|
||||
const { isESM } = require('./lib/esm');
|
||||
const glob = promisify(require('glob'));
|
||||
const rcedit = promisify(require('rcedit'));
|
||||
|
||||
@@ -79,10 +80,11 @@ const vscodeResources = [
|
||||
// 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/vs/loader.js',
|
||||
'out-build/bootstrap-window.js'
|
||||
];
|
||||
const windowBootstrapFiles = [];
|
||||
if (!isESM('Skipping loader.js in window bootstrap files')) {
|
||||
windowBootstrapFiles.push('out-build/vs/loader.js');
|
||||
}
|
||||
windowBootstrapFiles.push('out-build/bootstrap-window.js');
|
||||
|
||||
const commonJSEntryPoints = [
|
||||
'out-build/main.js',
|
||||
@@ -242,7 +244,7 @@ function packageTask(platform, arch, sourceFolderName, destinationFolderName, op
|
||||
}
|
||||
|
||||
const name = product.nameShort;
|
||||
const packageJsonUpdates = { name, version };
|
||||
const packageJsonUpdates = { name, version, ...(isESM(`Setting 'type: module' and 'main: out/main.js' in top level package.json`) ? { type: 'module', main: 'out/main.js' } : {}) }; // TODO@esm this should be configured in the top level package.json
|
||||
|
||||
// for linux url handling
|
||||
if (platform === 'linux') {
|
||||
@@ -275,16 +277,18 @@ function packageTask(platform, arch, sourceFolderName, destinationFolderName, op
|
||||
const jsFilter = util.filter(data => !data.isDirectory() && /\.js$/.test(data.path));
|
||||
const root = path.resolve(path.join(__dirname, '..'));
|
||||
const productionDependencies = getProductionDependencies(root);
|
||||
const dependenciesSrc = productionDependencies.map(d => path.relative(root, d.path)).map(d => [`${d}/**`, `!${d}/**/{test,tests}/**`]).flat();
|
||||
const dependenciesSrc = productionDependencies.map(d => path.relative(root, d.path)).map(d => [`${d}/**`, `!${d}/**/{test,tests}/**`, `!**/*.mk`]).flat();
|
||||
|
||||
const deps = gulp.src(dependenciesSrc, { base: '.', dot: true })
|
||||
let deps = gulp.src(dependenciesSrc, { base: '.', dot: true })
|
||||
.pipe(filter(['**', `!**/${config.version}/**`, '!**/bin/darwin-arm64-87/**', '!**/package-lock.json', '!**/yarn.lock', '!**/*.js.map']))
|
||||
.pipe(util.cleanNodeModules(path.join(__dirname, '.moduleignore')))
|
||||
.pipe(util.cleanNodeModules(path.join(__dirname, `.moduleignore.${process.platform}`)))
|
||||
.pipe(jsFilter)
|
||||
.pipe(util.rewriteSourceMappingURL(sourceMappingURLBase))
|
||||
.pipe(jsFilter.restore)
|
||||
.pipe(createAsar(path.join(process.cwd(), 'node_modules'), [
|
||||
.pipe(jsFilter.restore);
|
||||
|
||||
if (!isESM('ASAR disabled in VS Code builds')) { // TODO@esm: ASAR disabled in ESM
|
||||
deps = deps.pipe(createAsar(path.join(process.cwd(), 'node_modules'), [
|
||||
'**/*.node',
|
||||
'**/@vscode/ripgrep/bin/*',
|
||||
'**/node-pty/build/Release/*',
|
||||
@@ -296,6 +300,7 @@ function packageTask(platform, arch, sourceFolderName, destinationFolderName, op
|
||||
], [
|
||||
'**/*.mk',
|
||||
], 'node_modules.asar'));
|
||||
}
|
||||
|
||||
let all = es.merge(
|
||||
packageJsonStream,
|
||||
|
||||
Reference in New Issue
Block a user