You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

pnpm更新后SvelteKit启动失败:Vite提示仅能在Service Worker导入模块

解决pnpm更新后SvelteKit项目启动失败的问题

pnpm更新依赖后,SvelteKit项目无法启动,工具链(pnpm、vite、sass、terser或sveltekit)出现异常。运行pnpm run dev时输出如下:

> pnpm run dev
VITE v4.0.0  ready in 2880 ms

  ➜  Local:   http://localhost:5173/
  ➜  Network: use --host to expose
  ➜  press h to show help
...

This module can only be imported inside a service worker
    at $service-worker:3:8
    at instantiateModule (file:///Users/me/myapp/node_modules/.pnpm/vite@4.0.0_sass@1.56.2+terser@5.16.1/node_modules/vite/dist/node/chunks/dep-ed9cb113.js:53246:15)

报错指向以下代码中的指定行(该行作用是异步初始化SSR模块):

try {
   // eslint-disable-next-line @typescript-eslint/no-empty-function
   const AsyncFunction = async function () { }.constructor;
   const initModule = new AsyncFunction(`global`, ssrModuleExportsKey, ssrImportMetaKey, ssrImportKey, ssrDynamicImportKey, ssrExportAllKey, '"use strict";' + result.code + `\n//# sourceURL=${mod.url}`);
   await initModule(context.global, ssrModule, ssrImportMeta, ssrImport, ssrDynamicImport, ssrExportAll);  // <---------- 报错行
}

解决方法

  • 检查$service-worker文件的导入语句,确认是否有只能在Service Worker环境中使用的模块被错误地在主应用或SSR流程中导入了,比如部分PWA专属API或模块仅能在Service Worker作用域内引用。
  • 回滚到更新前的依赖版本,先确保项目正常运行:查看pnpm-lock.yaml找到更新前的vite、sveltekit等版本号,修改package.json后执行pnpm install。
  • 清除缓存并重装依赖:执行pnpm store prune清除缓存,删除node_modules和pnpm-lock.yaml后,重新运行pnpm install。
  • 检查velte.config.js配置文件,确认Service Worker相关配置是否正确,比如是否在非生产环境意外启用了Service Worker。
  • 升级vite和sveltekit到最新版本,该问题可能已在后续版本中修复。

内容的提问来源于stack exchange,提问作者Big_Boulard

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 15:05:13