SveltKit可读存储仅在客户端初始化



我有一个authToken可读存储,只能从客户端初始化。它在许多组件之间共享,因此它存在于自己的.ts文件中:

//auth.ts

export const authToken = readable("", (set) => {
const updateToken = async () => {
const token = await fetchToken() // ... fetch API token
set(token)
};
setTimeout(fetchToken, 0);
});

使用SvelteKit/Vite,此代码在服务器端运行,在编译过程中失败。如何强制它只在Mount上首次初始化(而不在.svelte组件中(?

您应该能够使用browser标志,例如:

import { browser } from '$app/environment';
export const authToken = readable("", (set) => {
const updateToken = async () => {
// ...
};
if (browser)
updateToken();
});

最新更新