monaco-exclude-languages.js 885 B

1234567891011121314151617181920212223242526272829303132333435
  1. const excludes = ['typescript', 'css', 'html']
  2. export function MonacoExcludeLanguages(esbuild) {
  3. if(esbuild){
  4. return {
  5. name: 'esbuild-plugin-monaco-exclude-languages',
  6. setup(build){
  7. build.onLoad({ filter: /basic-languages[/\\]monaco\.contribution\.js/ }, async () => {
  8. return {
  9. contents: `import '../editor/editor.api.js';`,
  10. loader: 'ts'
  11. }
  12. })
  13. excludes.forEach(id => {
  14. build.onLoad({ filter: new RegExp(`language/${id}`) }, async () => {
  15. return {
  16. contents: ``,
  17. loader: 'ts'
  18. }
  19. })
  20. })
  21. }
  22. }
  23. }
  24. return {
  25. name: 'rollup-plugin-monaco-exclude-languages',
  26. load(path){
  27. if(/basic-languages[/\\]monaco\.contribution\.js/.test(path)){
  28. return `import '../editor/editor.api.js';`
  29. }
  30. if(excludes.some(id => path.indexOf(`/monaco-editor/esm/vs/language/${id}/`) > 0)){
  31. return ``
  32. }
  33. }
  34. }
  35. }