build.js 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207
  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. //@ts-check
  6. const glob = require('glob');
  7. const { tsc, dts, buildESM, buildAMD } = require('../build/utils');
  8. const { copyFile, removeDir } = require('../build/fs');
  9. removeDir(`out`);
  10. tsc(`src/tsconfig.json`);
  11. //#region Type Defintion
  12. dts(`out/amd/css/monaco.contribution.d.ts`, `out/release/css/monaco.d.ts`, 'monaco.languages.css');
  13. dts(
  14. `out/amd/html/monaco.contribution.d.ts`,
  15. `out/release/html/monaco.d.ts`,
  16. 'monaco.languages.html'
  17. );
  18. dts(
  19. `out/amd/json/monaco.contribution.d.ts`,
  20. `out/release/json/monaco.d.ts`,
  21. 'monaco.languages.json'
  22. );
  23. dts(
  24. `out/amd/typescript/monaco.contribution.d.ts`,
  25. `out/release/typescript/monaco.d.ts`,
  26. 'monaco.languages.typescript'
  27. );
  28. //#endregion
  29. //#region css
  30. buildESM({
  31. base: 'css',
  32. entryPoints: ['src/css/monaco.contribution.ts', 'src/css/cssMode.ts', 'src/css/css.worker.ts'],
  33. external: ['monaco-editor-core', '*/cssMode']
  34. });
  35. buildAMD({
  36. base: 'css',
  37. entryPoint: 'src/css/monaco.contribution.ts',
  38. amdModuleId: 'vs/language/css/monaco.contribution',
  39. amdDependencies: ['vs/editor/editor.api']
  40. });
  41. buildAMD({
  42. base: 'css',
  43. entryPoint: 'src/css/cssMode.ts',
  44. amdModuleId: 'vs/language/css/cssMode'
  45. });
  46. buildAMD({
  47. base: 'css',
  48. entryPoint: 'src/css/cssWorker.ts',
  49. amdModuleId: 'vs/language/css/cssWorker'
  50. });
  51. //#endregion
  52. //#region html
  53. buildESM({
  54. base: 'html',
  55. entryPoints: [
  56. 'src/html/monaco.contribution.ts',
  57. 'src/html/htmlMode.ts',
  58. 'src/html/html.worker.ts'
  59. ],
  60. external: ['monaco-editor-core', '*/htmlMode']
  61. });
  62. buildAMD({
  63. base: 'html',
  64. entryPoint: 'src/html/monaco.contribution.ts',
  65. amdModuleId: 'vs/language/html/monaco.contribution',
  66. amdDependencies: ['vs/editor/editor.api']
  67. });
  68. buildAMD({
  69. base: 'html',
  70. entryPoint: 'src/html/htmlMode.ts',
  71. amdModuleId: 'vs/language/html/htmlMode'
  72. });
  73. buildAMD({
  74. base: 'html',
  75. entryPoint: 'src/html/htmlWorker.ts',
  76. amdModuleId: 'vs/language/html/htmlWorker'
  77. });
  78. //#endregion
  79. //#region json
  80. buildESM({
  81. base: 'json',
  82. entryPoints: [
  83. 'src/json/monaco.contribution.ts',
  84. 'src/json/jsonMode.ts',
  85. 'src/json/json.worker.ts'
  86. ],
  87. external: ['monaco-editor-core', '*/jsonMode']
  88. });
  89. buildAMD({
  90. base: 'json',
  91. entryPoint: 'src/json/monaco.contribution.ts',
  92. amdModuleId: 'vs/language/json/monaco.contribution',
  93. amdDependencies: ['vs/editor/editor.api']
  94. });
  95. buildAMD({
  96. base: 'json',
  97. entryPoint: 'src/json/jsonMode.ts',
  98. amdModuleId: 'vs/language/json/jsonMode'
  99. });
  100. buildAMD({
  101. base: 'json',
  102. entryPoint: 'src/json/jsonWorker.ts',
  103. amdModuleId: 'vs/language/json/jsonWorker'
  104. });
  105. //#endregion
  106. //#region typescript
  107. copyFile(
  108. `src/typescript/lib/typescriptServices-amd.js`,
  109. `out/amd/typescript/lib/typescriptServices.js`
  110. );
  111. buildESM({
  112. base: 'typescript',
  113. entryPoints: [
  114. 'src/typescript/monaco.contribution.ts',
  115. 'src/typescript/tsMode.ts',
  116. 'src/typescript/ts.worker.ts'
  117. ],
  118. external: ['monaco-editor-core', '*/tsMode']
  119. });
  120. buildAMD({
  121. base: 'typescript',
  122. entryPoint: 'src/typescript/monaco.contribution.ts',
  123. amdModuleId: 'vs/language/typescript/monaco.contribution',
  124. amdDependencies: ['vs/editor/editor.api']
  125. });
  126. buildAMD({
  127. base: 'typescript',
  128. entryPoint: 'src/typescript/tsMode.ts',
  129. amdModuleId: 'vs/language/typescript/tsMode'
  130. });
  131. buildAMD({
  132. base: 'typescript',
  133. entryPoint: 'src/typescript/tsWorker.ts',
  134. amdModuleId: 'vs/language/typescript/tsWorker'
  135. });
  136. //#endregion
  137. //#region basic-languages
  138. glob('../src/basic-languages/*/*.contribution.ts', { cwd: __dirname }, function (err, files) {
  139. if (err) {
  140. console.error(err);
  141. return;
  142. }
  143. const languages = files.map((file) => file.split('/')[3]);
  144. // ESM
  145. {
  146. /** @type {string[]} */
  147. const entryPoints = [
  148. 'src/basic-languages/monaco.contribution.ts',
  149. 'src/basic-languages/_.contribution.ts'
  150. ];
  151. const external = ['monaco-editor-core', '*/_.contribution'];
  152. for (const language of languages) {
  153. entryPoints.push(`src/basic-languages/${language}/${language}.contribution.ts`);
  154. entryPoints.push(`src/basic-languages/${language}/${language}.ts`);
  155. external.push(`*/${language}.contribution`);
  156. external.push(`*/${language}`);
  157. }
  158. buildESM({
  159. base: 'basic-languages',
  160. entryPoints,
  161. external
  162. });
  163. }
  164. // AMD
  165. {
  166. buildAMD({
  167. base: 'basic-languages',
  168. entryPoint: 'src/basic-languages/monaco.contribution.ts',
  169. amdModuleId: 'vs/basic-languages/monaco.contribution',
  170. amdDependencies: ['vs/editor/editor.api']
  171. });
  172. for (const language of languages) {
  173. buildAMD({
  174. base: 'basic-languages',
  175. entryPoint: `src/basic-languages/${language}/${language}.ts`,
  176. amdModuleId: `vs/basic-languages/${language}/${language}`
  177. });
  178. }
  179. }
  180. });
  181. //#endregion