lisonge / vite-plugin-monkey

A vite plugin server and build your.user.js for userscript engine like Tampermonkey, Violentmonkey, Greasemonkey, ScriptCat
MIT License
1.33k stars 70 forks source link

externalResource 貌似不能正确支持 ?raw #20

Closed Tsuk1ko closed 2 years ago

Tsuk1ko commented 2 years ago

我看到 externalResource 里面有处理 ?raw

https://github.com/lisonge/vite-plugin-monkey/blob/418ffb85dca2eb91260b3bc22bab110c7202bff7/packages/vite-plugin-monkey/src/node/plugins/externalResource.ts#L86-L93

因此我猜想我应该是可以这样使用的

import { GM_addStyle } from '$';
import elementPlusCss from 'element-plus/dist/index.css?raw';
// 自行在某个需要的时候才动态引入
GM_addStyle(elementPlusCss);
// in monkey config
externalResource: {
  'element-plus/dist/index.css?raw': cdn.jsdelivrFastly(undefined, 'dist/index.css'),
}

但实际上不管用,经过测试我发现,问题出在这里

https://github.com/lisonge/vite-plugin-monkey/blob/418ffb85dca2eb91260b3bc22bab110c7202bff7/packages/vite-plugin-monkey/src/node/plugins/externalResource.ts#L48-L53

不知道为什么此处 id 实际为 element-plus/dist/index.css?used&raw,多了个 used&,导致没有匹配上 externalResource

将 externalResource 配置里的 key 改为 element-plus/dist/index.css?used&raw 就可以顺利走进 load 钩子了,不过因为结尾并不是 ?raw 因此没有匹配上 raw 的处理,还是会有问题

lisonge commented 2 years ago

这个我之前遇到过,后来写着写着就忘记了怎么触发这个used,发布的时候总觉得少了点什么,原来是这个

我明天修复一下,你可以先用自定义loader处理

lisonge commented 2 years ago

fixed by v2.4.2