bundle.js 2.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  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 requirejs = require('requirejs');
  6. const path = require('path');
  7. const fs = require('fs');
  8. const terser = require('terser');
  9. const { getBundledFileHeader } = require('../../build/utils');
  10. const REPO_ROOT = path.resolve(__dirname, '..', '..');
  11. const BUNDLED_FILE_HEADER = getBundledFileHeader();
  12. bundleOne('monaco.contribution');
  13. bundleOne('htmlMode', ['vs/language/html/monaco.contribution']);
  14. bundleOne('htmlWorker');
  15. function bundleOne(moduleId, exclude) {
  16. requirejs.optimize(
  17. {
  18. baseUrl: 'out/amd/',
  19. name: 'vs/language/html/' + moduleId,
  20. out: 'release/dev/' + moduleId + '.js',
  21. exclude: exclude,
  22. paths: {
  23. 'vs/language/html': REPO_ROOT + '/monaco-html/out/amd',
  24. 'vs/language/html/fillers/monaco-editor-core':
  25. REPO_ROOT + '/monaco-html/out/amd/fillers/monaco-editor-core-amd'
  26. },
  27. optimize: 'none',
  28. packages: [
  29. {
  30. name: 'vscode-html-languageservice',
  31. location: path.join(REPO_ROOT, 'node_modules/vscode-html-languageservice/lib/umd'),
  32. main: 'htmlLanguageService'
  33. },
  34. {
  35. name: 'vscode-languageserver-types',
  36. location: path.join(REPO_ROOT, 'node_modules/vscode-languageserver-types/lib/umd'),
  37. main: 'main'
  38. },
  39. {
  40. name: 'vscode-languageserver-textdocument',
  41. location: path.join(REPO_ROOT, 'node_modules/vscode-languageserver-textdocument/lib/umd'),
  42. main: 'main'
  43. },
  44. {
  45. name: 'vscode-uri',
  46. location: path.join(REPO_ROOT, 'node_modules/vscode-uri/lib/umd'),
  47. main: 'index'
  48. },
  49. {
  50. name: 'vscode-nls',
  51. location: path.join(REPO_ROOT, 'monaco-html/out/amd/fillers'),
  52. main: 'vscode-nls'
  53. }
  54. ]
  55. },
  56. async function (buildResponse) {
  57. const devFilePath = path.join(REPO_ROOT, 'monaco-html/release/dev/' + moduleId + '.js');
  58. const minFilePath = path.join(REPO_ROOT, 'monaco-html/release/min/' + moduleId + '.js');
  59. const fileContents = fs.readFileSync(devFilePath).toString();
  60. console.log();
  61. console.log(`Minifying ${devFilePath}...`);
  62. const result = await terser.minify(fileContents, {
  63. output: {
  64. comments: 'some'
  65. }
  66. });
  67. console.log(`Done minifying ${devFilePath}.`);
  68. try {
  69. fs.mkdirSync(path.join(REPO_ROOT, 'monaco-html/release/min'));
  70. } catch (err) {}
  71. fs.writeFileSync(minFilePath, BUNDLED_FILE_HEADER + result.code);
  72. }
  73. );
  74. }