如何在M1 Mac上测试非ESM的<script nomodule>脚本?
解决M1 Mac上测试
nomodule脚本的简便方法 针对你需要测试网站nomodule脚本分支、且不想依赖慢虚拟机的需求,以下是几个直接可行的方案:
临时修改测试页面的HTML
直接在本地测试的HTML文件中,把<script type="module">标签注释掉或者删除,浏览器就会自动加载nomodule脚本。测试完成后再恢复原代码即可,这是最快速的临时测试方式。利用浏览器开发者工具强制忽略ESM脚本
使用Chrome/Edge的本地覆盖(Local Overrides)功能:- 打开DevTools(
F12),进入Sources面板,找到Overrides选项卡 - 启用本地覆盖并指定一个本地文件夹,然后保存页面的HTML文件到该文件夹
- 修改本地HTML文件中的
<script type="module">标签,比如添加disabled属性,或者直接注释掉 - 刷新页面,浏览器会自动加载修改后的HTML,从而只执行
nomodule脚本
也可以在DevTools控制台执行临时脚本快速移除ESM脚本:
document.querySelectorAll('script[type="module"]').forEach(s => s.remove());执行后页面会自动加载
nomodule版本的脚本。- 打开DevTools(
使用Docker运行x86旧浏览器
M1 Mac的Docker支持运行x86架构的容器,可以拉取包含旧版Chrome/Firefox的镜像(比如selenium/standalone-chrome:62.0),通过容器运行浏览器进行测试。相比虚拟机,容器的启动和运行速度更快,无需完整的操作系统环境。如果需要可视化界面,可以配置容器的GUI转发(比如使用XQuartz)。
这些方法都不需要调整打包器配置,完全针对最终通用构建的旧版本分支测试。
内容的提问来源于stack exchange,提问作者Ilya Semenov
相关产品推荐
相关产品推荐

