我有一个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();
});