diff --git a/.xo-config.cjs b/.xo-config.cjs index ced7c7b3..ccbcf091 100644 --- a/.xo-config.cjs +++ b/.xo-config.cjs @@ -55,6 +55,8 @@ module.exports = { "no-script-url": "off", // 允许 TODO 注释 "no-warning-comments": "off", + // 允许 return await + "no-return-await": "off", // 允许调用大写开头的函数 "new-cap": ["error", { "capIsNew": false }], // 允许使用复杂的数组解构 diff --git a/src/site/jm.tsx b/src/site/jm.tsx index 65409c23..53abe4fd 100644 --- a/src/site/jm.tsx +++ b/src/site/jm.tsx @@ -62,15 +62,24 @@ import { return; } + const downloadImg = async (url: string) => { + try { + // 使用 fetch 可以复用本地缓存,但有时候会报 cors 问题 + return await request(url, { responseType: 'blob', fetch: true }, 3); + } catch { + return await request( + url, + { responseType: 'blob', revalidate: true, fetch: false }, + 3, + ); + } + }; + const getImgUrl = async (imgEle: HTMLImageElement) => { if (imgEle.src.startsWith('blob:')) return imgEle.src; const originalUrl = imgEle.src; - const res = await request(imgEle.dataset.original!, { - responseType: 'blob', - revalidate: true, - fetch: false, - }); + const res = await downloadImg(imgEle.dataset.original!); if (res.response.size === 0) { toast.warn(`下载原图时出错: ${imgEle.dataset.page}`); return ''; diff --git a/vitest.config.ts b/vitest.config.ts index 3e9dd460..45d0c9fe 100644 --- a/vitest.config.ts +++ b/vitest.config.ts @@ -9,4 +9,5 @@ export default defineConfig({ test: { alias: { helper: resolve(__dirname, './src/helper') }, }, + define: { isDevMode: false }, });