Closed jim3ma closed 7 months ago
参考 highlight.js. 同时你需要自己手动指定highlight.js
的globalName.因为这个包十分怪异。同时你也需要指定relativeModule
字段随你自己的想法来。然后为了保险起见得在transform
这个hook里面手动调整为正确的cdn地址。
第一次用,对 globalName 和 relativeModule 不是很理解, transform 有看到例子
modules:[ {name:'highlight.js',global:'hljs',relativeModule:''} ]
modules:[ {name:'highlight.js',global:'hljs',relativeModule:''} ]
我看 https://github.com/nonzzz/vite-plugin-cdn/issues/30 里的 relativeModule 是:
{ name: 'pinia', relativeModule: './dist/pinia.iife.prod.js' },
{ name: 'vue-i18n', relativeModule: './dist/vue-i18n.global.prod.js' },
{ name: 'sortablejs', global: 'Sortablejs', relativeModule: './Sortable.min.js' }
relativeModule 是打包好的 js 么?highlight.js
里没有类似打包好的 js
@jim3ma relativeModule
有2个用处一个是当包没提供对应umd
或者iife
模块的时候读取这个地址然后推测globalName
。然后作为cdn地址加入到html
里面。这里要传入任意relativeModule
是因为highlight.js
并没有提供。但是插件是需要依据包有没有umd
或者iife
模块进行进一步判断。因此你同时需要在transform
这个hook里面拿到highlight.js
相关的url。并且重写他们
好的,非常感谢,我大概理解了,去尝试一下
具体可以参照 scanner.ts 和 inject.ts。 因为从我的角度来看如果一个库不提供iife
或者umd
包的话他是无法进行external的除非使用esm的importMap
。但是目前我觉得importMap
还存在很多不足所以是这么实现的
确实如此,没有提供 iife 和 umd 不好搞
首先感谢作者的无私奉献。
请教一下关于如何加载
highlight.js
错误日志: