mirror of
https://github.com/microsoft/vscode.git
synced 2025-12-24 20:26:08 +00:00
Move webNodePaths to run on compile since we rimraf out
This commit is contained in:
@@ -340,3 +340,45 @@ export function getElectronVersion(): string {
|
||||
const target = /^target "(.*)"$/m.exec(yarnrc)![1];
|
||||
return target;
|
||||
}
|
||||
|
||||
export function buildWebNodePaths() {
|
||||
const result = () => new Promise<void>((resolve, _) => {
|
||||
const root = path.join(__dirname, '..', '..');
|
||||
const webPackageJSON = path.join(root, '/remote/web', 'package.json');
|
||||
const webPackages = JSON.parse(fs.readFileSync(webPackageJSON, 'utf8')).dependencies;
|
||||
const nodePaths: { [key: string]: string } = {};
|
||||
for (const key of Object.keys(webPackages)) {
|
||||
const packageJSON = path.join(root, 'node_modules', key, 'package.json');
|
||||
const packageData = JSON.parse(fs.readFileSync(packageJSON, 'utf8'));
|
||||
let entryPoint = packageData.browser ?? packageData.main;
|
||||
// On rare cases a package doesn't have an entrypoint so we assume it has a dist folder with a min.js
|
||||
if (!entryPoint) {
|
||||
console.warn(`No entry point for ${key} assuming dist/${key}.min.js`);
|
||||
entryPoint = `dist/${key}.min.js`;
|
||||
}
|
||||
// Remove any starting path information so it's all relative info
|
||||
if (entryPoint.startsWith('./')) {
|
||||
entryPoint = entryPoint.substr(2);
|
||||
} else if (entryPoint.startsWith('/')) {
|
||||
entryPoint = entryPoint.substr(1);
|
||||
}
|
||||
nodePaths[key] = entryPoint;
|
||||
}
|
||||
|
||||
// Now we write the node paths to out/vs
|
||||
const outDirectory = path.join(root, 'out', 'vs');
|
||||
fs.mkdirSync(outDirectory, { recursive: true });
|
||||
const headerWithGeneratedFileWarning = `/*---------------------------------------------------------------------------------------------
|
||||
* Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
* Licensed under the MIT License. See License.txt in the project root for license information.
|
||||
*--------------------------------------------------------------------------------------------*/
|
||||
|
||||
// This file is generated by build/npm/postinstall.js. Do not edit.`;
|
||||
const fileContents = `${headerWithGeneratedFileWarning}\nself.webPackagePaths = ${JSON.stringify(nodePaths, null, 2)};`;
|
||||
fs.writeFileSync(path.join(outDirectory, 'webPackagePaths.js'), fileContents, 'utf8');
|
||||
resolve();
|
||||
});
|
||||
result.taskName = 'build-web-node-paths';
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user