build.js 4.8 KB

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