v-code-diff icon indicating copy to clipboard operation
v-code-diff copied to clipboard

不自动依赖所有highlight.js的语言包

Open iambus opened this issue 3 years ago • 2 comments

参考Highlight.js主页的用法: https://github.com/highlightjs/highlight.js

const hljs = require('highlight.js/lib/core');
hljs.registerLanguage('xml', require('highlight.js/lib/languages/xml'));

const highlightedCode = hljs.highlight('<span>Hello World!</span>', {language: 'xml'}).value

我实在是不需要语言高亮。将import hljs from 'highlight.js'替换为import * as hljs from 'highlight.js/lib/core'之后,js文件从1M减小到了100K。

另外Highlight.js官方有一个vue plugin: https://github.com/highlightjs/vue-plugin

iambus avatar Dec 12 '21 10:12 iambus

谢谢你的建议,我试了一下,如果不高亮文本,使用动态 import 是可以减小体积的,如果可以,我明天测试后再发一个版本

Shimada666 avatar Dec 13 '21 17:12 Shimada666

测试发现动态 import 无法实现,我也不想做破坏性变更,如果你有比较好的方法欢迎提 pr

Shimada666 avatar Dec 14 '21 05:12 Shimada666

新版本中已解决了这一点,默认仅引入少数流行语言高亮包。如果有需要可以考虑使用插件新版本

Shimada666 avatar Feb 12 '23 16:02 Shimada666