|
1 | 1 | import React from 'react'; |
2 | 2 | import fs from 'fs'; |
| 3 | +import path from 'path'; |
3 | 4 | import { ConfigProvider, theme } from 'antd'; |
4 | 5 | import { extractStyle } from '@ant-design/static-style-extract'; |
5 | 6 |
|
@@ -29,9 +30,38 @@ fs.mkdirSync('./public/styles', { recursive: true }); |
29 | 30 | // 生成css |
30 | 31 | fs.writeFileSync(outputPath, css); |
31 | 32 |
|
32 | | -// 拷贝monaco |
33 | | -fs.cpSync( |
34 | | - './node_modules/monaco-editor/min/vs', |
35 | | - './public/assets/monaco-editor/min/vs', |
36 | | - { recursive: true }, |
37 | | -); |
| 33 | +// 拷贝monaco - 只复制必要的文件,减少体积(14MB -> ~5MB) |
| 34 | +const monacoSrc = './node_modules/monaco-editor/min/vs'; |
| 35 | +const monacoDst = './public/assets/monaco-editor/min/vs'; |
| 36 | + |
| 37 | +// 核心文件(必须) |
| 38 | +fs.mkdirSync(monacoDst, { recursive: true }); |
| 39 | +fs.copyFileSync(path.join(monacoSrc, 'loader.js'), path.join(monacoDst, 'loader.js')); |
| 40 | + |
| 41 | +// 中文语言包 |
| 42 | +const nlsFile = 'nls.messages.zh-cn.js'; |
| 43 | +if (fs.existsSync(path.join(monacoSrc, nlsFile))) { |
| 44 | + fs.copyFileSync(path.join(monacoSrc, nlsFile), path.join(monacoDst, nlsFile)); |
| 45 | +} |
| 46 | + |
| 47 | +// base(核心运行时)和 editor(编辑器主体) |
| 48 | +for (const dir of ['base', 'editor']) { |
| 49 | + fs.cpSync(path.join(monacoSrc, dir), path.join(monacoDst, dir), { recursive: true }); |
| 50 | +} |
| 51 | + |
| 52 | +// language - 只复制 typescript 和 json(JS 由 typescript worker 处理) |
| 53 | +for (const lang of ['typescript', 'json']) { |
| 54 | + fs.cpSync( |
| 55 | + path.join(monacoSrc, 'language', lang), |
| 56 | + path.join(monacoDst, 'language', lang), |
| 57 | + { recursive: true }, |
| 58 | + ); |
| 59 | +} |
| 60 | + |
| 61 | +// basic-languages - 只复制 javascript、typescript、css |
| 62 | +for (const lang of ['javascript', 'typescript', 'css']) { |
| 63 | + const langSrc = path.join(monacoSrc, 'basic-languages', lang); |
| 64 | + if (fs.existsSync(langSrc)) { |
| 65 | + fs.cpSync(langSrc, path.join(monacoDst, 'basic-languages', lang), { recursive: true }); |
| 66 | + } |
| 67 | +} |
0 commit comments