Use esbuild also for AMD variant

This commit is contained in:
Alex Dima 2021-11-12 01:02:23 +01:00
parent 63e425ffe2
commit 829ee45850
No known key found for this signature in database
GPG key ID: 39563C1504FDD0C9
5 changed files with 85 additions and 100 deletions

View file

@ -14,27 +14,88 @@ removeDir(`monaco-css/out`);
tsc(`monaco-css/src/tsconfig.json`);
dts(`monaco-css/out/amd/monaco.contribution.d.ts`, `monaco-css/monaco.d.ts`, 'monaco.languages.css');
dts(
`monaco-css/out/amd/monaco.contribution.d.ts`,
`monaco-css/monaco.d.ts`,
'monaco.languages.css'
);
esbuild.build({
entryPoints: ['src/cssMode.ts', 'src/css.worker.ts', 'src/monaco.contribution.ts'],
/**
* @param {import('esbuild').BuildOptions} options
*/
function build(options) {
esbuild.build(options).then((result) => {
if (result.errors.length > 0) {
console.error(result.errors);
}
if (result.warnings.length > 0) {
console.error(result.warnings);
}
});
}
build({
entryPoints: ['src/monaco.contribution.ts', 'src/cssMode.ts', 'src/css.worker.ts'],
bundle: true,
target: 'esnext',
format: 'esm',
define: {
AMD: false
},
external: ['monaco-editor-core', '*/cssMode'],
outdir: 'release/esm/',
plugins: [
alias({
'vscode-nls': path.join(__dirname, '../src/fillers/vscode-nls.ts'),
}),
],
}).then((result) => {
if (result.errors.length > 0) {
console.error(result.errors);
}
if (result.warnings.length > 0) {
console.error(result.warnings);
}
'vscode-nls': path.join(__dirname, '../src/fillers/vscode-nls.ts')
})
]
});
cp.spawnSync(process.execPath, [path.join(__dirname, './bundle.js')], { stdio: 'inherit', stderr: 'inherit' });
/**
* @param {'dev'|'min'} type
* @param {string} entryPoint
* @param {string} banner
*/
function buildOneAMD(type, entryPoint, banner) {
/** @type {import('esbuild').BuildOptions} */
const options = {
entryPoints: [entryPoint],
bundle: true,
target: 'esnext',
format: 'iife',
define: {
AMD: true
},
external: ['*/cssMode'],
globalName: 'moduleExports',
banner: {
js: banner
},
footer: {
js: 'return moduleExports;\n});'
},
outdir: `release/${type}/`,
plugins: [
alias({
'monaco-editor-core': path.join(__dirname, '../src/fillers/monaco-editor-core-amd.ts')
})
]
};
if (type === 'min') {
options.minify = true;
}
build(options);
}
/**
* @param {string} entryPoint
* @param {string} banner
*/
function buildAMD(entryPoint, banner) {
buildOneAMD('dev', entryPoint, banner);
buildOneAMD('min', entryPoint, banner);
}
buildAMD('src/monaco.contribution.ts', 'define("vs/language/css/monaco.contribution",["vs/editor/editor.api"],()=>{');
buildAMD('src/cssMode.ts', 'define("vs/language/css/cssMode",["vs/editor/editor.api"],()=>{');
buildAMD('src/cssWorker.ts', 'define("vs/language/css/cssWorker",[],()=>{');