Windows版Chrome今日起JavaScript动态导入模块出现阻塞问题
解决Windows版Chrome动态导入卡住的问题
1. 检查Chrome版本与更新
- 打开
chrome://version/查看当前版本,若问题是自动更新后出现的,优先升级到最新稳定版,或通过官方离线安装包回滚到上一个正常版本。部分Chrome版本会在模块导入缓存、路径解析上出现临时bug,版本调整往往能快速解决。
2. 清除站点缓存与数据
- 进入
chrome://settings/siteData,找到对应域名清除所有缓存和存储数据。损坏的模块缓存可能导致导入流程卡住,无痕模式测试也能快速验证是否是缓存问题——如果无痕模式正常,直接清理常规模式的缓存即可。
3. 排查扩展程序干扰
- 禁用所有Chrome扩展,再逐个重新启用排查。广告拦截、脚本注入类扩展常会篡改或拦截模块请求,尤其是近期新安装/更新的扩展,大概率是冲突源头。
4. 验证模块路径与文件完整性
- 确认
../main.mjs路径的大小写是否与实际文件一致,虽然Windows文件系统不区分大小写,但Chrome的模块解析可能严格校验。同时在DevTools的Sources面板打开该文件,检查是否存在语法错误——部分情况下,模块语法错误不会抛出异常,而是直接卡住导入流程。
5. 启用调试日志定位根源
- 用命令行参数启动Chrome:
chrome.exe --enable-logging --v=1,运行后查看%USERPROFILE%\AppData\Local\Google\Chrome\User Data\chrome_debug.log日志文件,查找模块导入相关的错误信息,能精准定位问题。
6. 测试替代导入方式
- 先尝试静态导入
import def from "../main.mjs";,如果静态导入正常,说明动态导入的处理逻辑存在问题;如果静态导入也失败,问题出在模块本身或基础加载机制。 - 也可以改用
.then().catch()语法替代await,尝试捕获异常:
import("../main.mjs") .then(def => console.log('模块加载成功', def)) .catch(err => console.error('加载错误', err));
7. 排查系统级工具干扰
- 暂时禁用Windows下的杀毒软件、防火墙或代理工具测试,这类软件可能拦截Chrome的本地模块请求。如果恢复正常,将Chrome或对应站点添加到信任列表即可。
内容的提问来源于stack exchange,提问作者Thallius
相关产品推荐
相关产品推荐

