From 8944900f86009890fd7ffed3cc953cccac83bdd7 Mon Sep 17 00:00:00 2001 From: Alexandru Dima Date: Fri, 12 Nov 2021 11:22:26 +0100 Subject: [PATCH] Add `buildESM` to common build script --- build/utils.js | 33 +++++++++++++++++++++++++++++++-- monaco-css/build.js | 20 +++++--------------- monaco-html/build.js | 20 +++++--------------- 3 files changed, 41 insertions(+), 32 deletions(-) diff --git a/build/utils.js b/build/utils.js index 961b319e..39aeed3d 100644 --- a/build/utils.js +++ b/build/utils.js @@ -3,10 +3,13 @@ * Licensed under the MIT License. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ +//@ts-check + const fs = require('fs'); const path = require('path'); const cp = require('child_process'); const esbuild = require('esbuild'); +const alias = require('esbuild-plugin-alias'); const REPO_ROOT = path.join(__dirname, '..'); @@ -86,7 +89,7 @@ function tsc(_projectPath) { cp.spawnSync( process.execPath, [path.join(__dirname, '../node_modules/typescript/lib/tsc.js'), '-p', projectPath], - { stdio: 'inherit', stderr: 'inherit' } + { stdio: 'inherit' } ); console.log(`Compiled ${_projectPath}`); } @@ -102,7 +105,7 @@ function prettier(_filePath) { cp.spawnSync( process.execPath, [path.join(__dirname, '../node_modules/prettier/bin-prettier.js'), '--write', filePath], - { stdio: 'inherit', stderr: 'inherit' } + { stdio: 'inherit' } ); console.log(`Ran prettier over ${_filePath}`); @@ -170,6 +173,32 @@ function build(options) { } exports.build = build; +/** + * @param {{ + * entryPoints: string[]; + * external: string[]; + * }} options + */ +function buildESM(options) { + build({ + entryPoints: options.entryPoints, + bundle: true, + target: 'esnext', + format: 'esm', + define: { + AMD: 'false' + }, + external: options.external, + outdir: 'release/esm/', + plugins: [ + alias({ + 'vscode-nls': path.join(__dirname, 'fillers/vscode-nls.ts') + }) + ] + }); +} +exports.buildESM = buildESM; + 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 a8595244..432f437b 100644 --- a/monaco-css/build.js +++ b/monaco-css/build.js @@ -3,9 +3,11 @@ * Licensed under the MIT License. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ +//@ts-check + const alias = require('esbuild-plugin-alias'); const path = require('path'); -const { removeDir, tsc, dts, build } = require('../build/utils'); +const { removeDir, tsc, dts, build, buildESM } = require('../build/utils'); removeDir(`monaco-css/release`); removeDir(`monaco-css/out`); @@ -18,21 +20,9 @@ dts( 'monaco.languages.css' ); -build({ +buildESM({ 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, '../build/fillers/vscode-nls.ts') - }) - ] }); /** @@ -48,7 +38,7 @@ function buildOneAMD(type, entryPoint, banner) { target: 'esnext', format: 'iife', define: { - AMD: true + AMD: 'true' }, external: ['*/cssMode'], globalName: 'moduleExports', diff --git a/monaco-html/build.js b/monaco-html/build.js index 65ab44e2..97524063 100644 --- a/monaco-html/build.js +++ b/monaco-html/build.js @@ -3,9 +3,11 @@ * Licensed under the MIT License. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ +//@ts-check + const alias = require('esbuild-plugin-alias'); const path = require('path'); -const { removeDir, tsc, dts, build } = require('../build/utils'); +const { removeDir, tsc, dts, build, buildESM } = require('../build/utils'); removeDir(`monaco-html/release`); removeDir(`monaco-html/out`); @@ -18,21 +20,9 @@ dts( 'monaco.languages.html' ); -build({ +buildESM({ entryPoints: ['src/monaco.contribution.ts', 'src/htmlMode.ts', 'src/html.worker.ts'], - bundle: true, - target: 'esnext', - format: 'esm', - define: { - AMD: false - }, external: ['monaco-editor-core', '*/htmlMode'], - outdir: 'release/esm/', - plugins: [ - alias({ - 'vscode-nls': path.join(__dirname, '../build/fillers/vscode-nls.ts') - }) - ] }); /** @@ -48,7 +38,7 @@ function buildOneAMD(type, entryPoint, banner) { target: 'esnext', format: 'iife', define: { - AMD: true + AMD: 'true' }, external: ['*/htmlMode'], globalName: 'moduleExports',