Cleans up build scripts (#5097)

* Cleans up build scripts

* Adds back removeDir
This commit is contained in:
Henning Dieterichs 2025-11-07 13:10:14 +01:00 committed by GitHub
parent abae948dc3
commit d84acb4d8f
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
8 changed files with 199 additions and 171 deletions

View file

@ -13,48 +13,13 @@ import del from 'rollup-plugin-delete';
import keepCssImports from './rollup-plugin-keep-css-imports/dist/index.mjs';
import nodeResolve from '@rollup/plugin-node-resolve';
import { urlToEsmPlugin } from './rollup-url-to-module-plugin/index.mjs';
import { copyFileSync, mkdirSync } from 'fs';
import { dirname } from 'path';
import { fileURLToPath } from 'url';
import { readdirSync } from 'fs';
import { getNlsEntryPoints, mapModuleId } from '../shared.mjs';
import { readFileSync } from 'fs';
const root = join(import.meta.dirname, '../../');
const outDir = join(root, './out/monaco-editor/esm');
/**
* @param {string} filePath
* @param {string} newExt
* @returns {string}
*/
function changeExt(filePath, newExt) {
const idx = filePath.lastIndexOf('.');
if (idx === -1) {
return filePath + newExt;
} else {
return filePath.substring(0, idx) + newExt;
}
}
const mappedPaths = {
[join(root, 'node_modules/monaco-editor-core/esm/')]: '.',
[join(root, 'node_modules/')]: 'external/',
[join(root, 'monaco-lsp-client/')]: 'external/monaco-lsp-client/',
[join(root, 'src/')]: 'vs/',
};
function getNlsEntryPoints() {
// Scan for nls.messages.*.js files dynamically
const nlsDir = dirname(fileURLToPath(import.meta.resolve('monaco-editor-core/esm/nls.messages.en.js')));
const nlsFiles = readdirSync(nlsDir)
.filter(file => file.startsWith('nls.messages.') && file.endsWith('.js'))
.reduce((acc, file) => {
// @ts-ignore
acc[file] = join(nlsDir, file);
return acc;
}, {});
return nlsFiles;
}
export default defineConfig({
input: {
entry: join(root, './src/editor/editor.main.ts'),
@ -72,11 +37,9 @@ export default defineConfig({
entryFileNames: function (chunkInfo) {
const moduleId = chunkInfo.facadeModuleId;
if (moduleId) {
for (const [key, val] of Object.entries(mappedPaths)) {
if (moduleId.startsWith(key)) {
const relativePath = moduleId.substring(key.length);
return changeExt(join(val, relativePath), '.js');
}
const r = mapModuleId(moduleId, '.js');
if (r !== undefined) {
return r;
}
}
return '[name].js';
@ -90,11 +53,12 @@ export default defineConfig({
{
name: 'copy-codicon-font',
buildEnd() {
const codiconSource = join(root, 'node_modules/monaco-editor-core/esm/vs/base/browser/ui/codicons/codicon/codicon.ttf');
const codiconDest = join(outDir, 'vs/base/browser/ui/codicons/codicon/codicon.ttf');
mkdirSync(dirname(codiconDest), { recursive: true });
copyFileSync(codiconSource, codiconDest);
generateBundle() {
this.emitFile({
type: 'asset',
fileName: 'vs/base/browser/ui/codicons/codicon/codicon.ttf',
source: readFileSync(join(root, 'node_modules/monaco-editor-core/esm/vs/base/browser/ui/codicons/codicon/codicon.ttf'))
});
}
},
@ -106,13 +70,10 @@ export default defineConfig({
* @param {string} assetId
*/
outputPath: (assetId) => {
for (const [key, val] of Object.entries(mappedPaths)) {
if (assetId.startsWith(key)) {
const relativePath = assetId.substring(key.length);
return changeExt(join(outDir, val, relativePath), '.css');
}
const r = mapModuleId(assetId, '.css');
if (r !== undefined) {
return join(outDir, r);
}
const relativePath = join(outDir, relative(root, assetId));
return relativePath.replace(/(\.s[ca]ss)$/, ".min$1")
},