build.js 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
  1. /*---------------------------------------------------------------------------------------------
  2. * Copyright (c) Microsoft Corporation. All rights reserved.
  3. * Licensed under the MIT License. See License.txt in the project root for license information.
  4. *--------------------------------------------------------------------------------------------*/
  5. const esbuild = require('esbuild');
  6. const alias = require('esbuild-plugin-alias');
  7. const path = require('path');
  8. const cp = require('child_process');
  9. const { removeDir, tsc, dts } = require('../../build/utils');
  10. removeDir(`monaco-css/release`);
  11. removeDir(`monaco-css/out`);
  12. tsc(`monaco-css/src/tsconfig.json`);
  13. dts(
  14. `monaco-css/out/amd/monaco.contribution.d.ts`,
  15. `monaco-css/monaco.d.ts`,
  16. 'monaco.languages.css'
  17. );
  18. /**
  19. * @param {import('esbuild').BuildOptions} options
  20. */
  21. function build(options) {
  22. esbuild.build(options).then((result) => {
  23. if (result.errors.length > 0) {
  24. console.error(result.errors);
  25. }
  26. if (result.warnings.length > 0) {
  27. console.error(result.warnings);
  28. }
  29. });
  30. }
  31. build({
  32. entryPoints: ['src/monaco.contribution.ts', 'src/cssMode.ts', 'src/css.worker.ts'],
  33. bundle: true,
  34. target: 'esnext',
  35. format: 'esm',
  36. define: {
  37. AMD: false
  38. },
  39. external: ['monaco-editor-core', '*/cssMode'],
  40. outdir: 'release/esm/',
  41. plugins: [
  42. alias({
  43. 'vscode-nls': path.join(__dirname, '../src/fillers/vscode-nls.ts')
  44. })
  45. ]
  46. });
  47. /**
  48. * @param {'dev'|'min'} type
  49. * @param {string} entryPoint
  50. * @param {string} banner
  51. */
  52. function buildOneAMD(type, entryPoint, banner) {
  53. /** @type {import('esbuild').BuildOptions} */
  54. const options = {
  55. entryPoints: [entryPoint],
  56. bundle: true,
  57. target: 'esnext',
  58. format: 'iife',
  59. define: {
  60. AMD: true
  61. },
  62. external: ['*/cssMode'],
  63. globalName: 'moduleExports',
  64. banner: {
  65. js: banner
  66. },
  67. footer: {
  68. js: 'return moduleExports;\n});'
  69. },
  70. outdir: `release/${type}/`,
  71. plugins: [
  72. alias({
  73. 'monaco-editor-core': path.join(__dirname, '../src/fillers/monaco-editor-core-amd.ts')
  74. })
  75. ]
  76. };
  77. if (type === 'min') {
  78. options.minify = true;
  79. }
  80. build(options);
  81. }
  82. /**
  83. * @param {string} entryPoint
  84. * @param {string} banner
  85. */
  86. function buildAMD(entryPoint, banner) {
  87. buildOneAMD('dev', entryPoint, banner);
  88. buildOneAMD('min', entryPoint, banner);
  89. }
  90. buildAMD('src/monaco.contribution.ts', 'define("vs/language/css/monaco.contribution",["vs/editor/editor.api"],()=>{');
  91. buildAMD('src/cssMode.ts', 'define("vs/language/css/cssMode",["vs/editor/editor.api"],()=>{');
  92. buildAMD('src/cssWorker.ts', 'define("vs/language/css/cssWorker",[],()=>{');