From 6bfac402fb93abcb8b5eab6a71380190fe35afea Mon Sep 17 00:00:00 2001 From: Alexandru Dima Date: Fri, 12 Nov 2021 11:31:25 +0100 Subject: [PATCH] Move `buildAMD` to common build script --- .prettierignore | 1 + build/utils.js | 50 +++++++++++++++++++++++++++++++ monaco-css/build.js | 71 +++++++++----------------------------------- monaco-html/build.js | 71 +++++++++----------------------------------- 4 files changed, 79 insertions(+), 114 deletions(-) diff --git a/.prettierignore b/.prettierignore index b4868d6c..0a35dc01 100644 --- a/.prettierignore +++ b/.prettierignore @@ -14,6 +14,7 @@ /monaco-editor/website/lib/ /monaco-html/out/ /monaco-html/release/ +/monaco-editor-webpack-plugin/test/dist/*.js /monaco-json/out/ /monaco-json/release/ /monaco-languages/out/ diff --git a/build/utils.js b/build/utils.js index 39aeed3d..e5543fc6 100644 --- a/build/utils.js +++ b/build/utils.js @@ -199,6 +199,56 @@ function buildESM(options) { } exports.buildESM = buildESM; +/** + * @param {'dev'|'min'} type + * @param {{ + * entryPoint: string; + * banner: string; + * }} options + */ +function buildOneAMD(type, options) { + /** @type {import('esbuild').BuildOptions} */ + const opts = { + entryPoints: [options.entryPoint], + bundle: true, + target: 'esnext', + format: 'iife', + define: { + AMD: 'true' + }, + globalName: 'moduleExports', + banner: { + js: options.banner + }, + footer: { + js: 'return moduleExports;\n});' + }, + outdir: `release/${type}/`, + plugins: [ + alias({ + 'vscode-nls': path.join(__dirname, '../build/fillers/vscode-nls.ts'), + 'monaco-editor-core': path.join(__dirname, '../build/fillers/monaco-editor-core-amd.ts') + }) + ] + }; + if (type === 'min') { + opts.minify = true; + } + build(opts); +} + +/** + * @param {{ + * entryPoint: string; + * banner: string; + * }} options + */ +function buildAMD(options) { + buildOneAMD('dev', options); + buildOneAMD('min', options); +} +exports.buildAMD = buildAMD; + function getGitVersion() { const git = path.join(REPO_ROOT, '.git'); const headPath = path.join(git, 'HEAD'); diff --git a/monaco-css/build.js b/monaco-css/build.js index 432f437b..7658d754 100644 --- a/monaco-css/build.js +++ b/monaco-css/build.js @@ -5,9 +5,7 @@ //@ts-check -const alias = require('esbuild-plugin-alias'); -const path = require('path'); -const { removeDir, tsc, dts, build, buildESM } = require('../build/utils'); +const { removeDir, tsc, dts, buildESM, buildAMD } = require('../build/utils'); removeDir(`monaco-css/release`); removeDir(`monaco-css/out`); @@ -22,58 +20,17 @@ dts( buildESM({ entryPoints: ['src/monaco.contribution.ts', 'src/cssMode.ts', 'src/css.worker.ts'], - external: ['monaco-editor-core', '*/cssMode'], + external: ['monaco-editor-core', '*/cssMode'] +}); +buildAMD({ + entryPoint: 'src/monaco.contribution.ts', + banner: 'define("vs/language/css/monaco.contribution",["vs/editor/editor.api"],()=>{' +}); +buildAMD({ + entryPoint: 'src/cssMode.ts', + banner: 'define("vs/language/css/cssMode",["vs/editor/editor.api"],()=>{' +}); +buildAMD({ + entryPoint: 'src/cssWorker.ts', + banner: 'define("vs/language/css/cssWorker",[],()=>{' }); - -/** - * @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({ - 'vscode-nls': path.join(__dirname, '../build/fillers/vscode-nls.ts'), - 'monaco-editor-core': path.join(__dirname, '../build/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",[],()=>{'); diff --git a/monaco-html/build.js b/monaco-html/build.js index 97524063..25692bd3 100644 --- a/monaco-html/build.js +++ b/monaco-html/build.js @@ -5,9 +5,7 @@ //@ts-check -const alias = require('esbuild-plugin-alias'); -const path = require('path'); -const { removeDir, tsc, dts, build, buildESM } = require('../build/utils'); +const { removeDir, tsc, dts, buildESM, buildAMD } = require('../build/utils'); removeDir(`monaco-html/release`); removeDir(`monaco-html/out`); @@ -22,58 +20,17 @@ dts( buildESM({ entryPoints: ['src/monaco.contribution.ts', 'src/htmlMode.ts', 'src/html.worker.ts'], - external: ['monaco-editor-core', '*/htmlMode'], + external: ['monaco-editor-core', '*/htmlMode'] +}); +buildAMD({ + entryPoint: 'src/monaco.contribution.ts', + banner: 'define("vs/language/html/monaco.contribution",["vs/editor/editor.api"],()=>{' +}); +buildAMD({ + entryPoint: 'src/htmlMode.ts', + banner: 'define("vs/language/html/htmlMode",["vs/editor/editor.api"],()=>{' +}); +buildAMD({ + entryPoint: 'src/htmlWorker.ts', + banner: 'define("vs/language/html/htmlWorker",[],()=>{' }); - -/** - * @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: ['*/htmlMode'], - globalName: 'moduleExports', - banner: { - js: banner - }, - footer: { - js: 'return moduleExports;\n});' - }, - outdir: `release/${type}/`, - plugins: [ - alias({ - 'vscode-nls': path.join(__dirname, '../build/fillers/vscode-nls.ts'), - 'monaco-editor-core': path.join(__dirname, '../build/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/html/monaco.contribution",["vs/editor/editor.api"],()=>{' -); -buildAMD('src/htmlMode.ts', 'define("vs/language/html/htmlMode",["vs/editor/editor.api"],()=>{'); -buildAMD('src/htmlWorker.ts', 'define("vs/language/html/htmlWorker",[],()=>{');