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

Vite Lit.js项目WTR配置报错:TypeError无法导入测试模块

解决Web Test Runner + Lit.js + TypeScript动态导入模块失败的问题

针对你遇到的「Failed to fetch dynamically imported module」错误,以下是几个针对性的排查和修复步骤:

  • 检查测试文件路径配置
    确保web-test-runner.config.mjs里的files字段正确匹配测试文件,比如:

    export default {
      files: 'test/**/*.test.ts',
    };
    

    避免路径写错(比如漏写test/前缀)或扩展名不匹配(比如写成.tsx但实际是.ts)。

  • 修正esbuild插件的TS编译配置
    确保@web/dev-server-esbuild插件正确启用TypeScript编译,且目标环境适配浏览器:

    import { esbuildPlugin } from '@web/dev-server-esbuild';
    
    export default {
      plugins: [
        esbuildPlugin({
          ts: true,
          target: 'es2020', // 适配现代浏览器,避免语法不兼容
          sourcemap: false, // 可选,关闭sourcemap减少编译问题
        }),
      ],
    };
    

    注意必须安装@web/dev-server-esbuild,而非单独的esbuild包。

  • 处理裸模块导入解析
    如果Lit组件或测试文件中使用了import { LitElement } from 'lit'这类裸导入,需要添加模块解析插件:

    import { rollupAdapter } from '@web/dev-server-rollup';
    import nodeResolve from '@rollup/plugin-node-resolve';
    import { esbuildPlugin } from '@web/dev-server-esbuild';
    
    export default {
      plugins: [
        rollupAdapter(nodeResolve({ browser: true, exportConditions: ['browser'] })),
        esbuildPlugin({ ts: true }),
      ],
    };
    

    安装依赖:npm install @rollup/plugin-node-resolve @web/dev-server-rollup --save-dev

  • 禁用缓存排除旧编译残留
    运行测试时添加--no-cache参数强制清除缓存,或者在配置中禁用缓存:

    export default {
      cache: false,
      // 其他配置...
    };
    
  • 用debug模式定位深层问题
    执行web-test-runner --debug命令,打开弹出的浏览器后,打开开发者工具:

    1. 查看Network面板,确认测试文件的HTTP状态码(404=路径错误,500=编译失败)
    2. 查看Console面板,获取更详细的导入失败原因(比如TS语法错误、依赖缺失)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 05:54:59