Mac构建的Chrome扩展正常,Windows/WSL2构建后异常求助
解决思路
针对弹窗语法错误问题
- 检查换行符与Git转换设置:Mac默认LF换行,Windows默认CRLF,Git自动转换换行符可能导致编译后出现隐藏异常字符。在项目根目录添加
.gitattributes文件,写入*.js text eol=lf强制JS文件使用LF换行,之后重新拉取代码或重置本地文件。 - 验证构建工具的编码输出:确认Webpack/Vite等构建工具的输出编码为UTF-8无BOM。部分Windows环境下构建工具可能默认生成带BOM的文件,导致浏览器解析报错。可在构建配置中明确指定编码,例如Webpack可在
file-loader或babel-loader的配置里添加encoding: 'utf8'参数。 - 排查代码行的不可见特殊字符:用编辑器的「显示所有字符」功能(如VSCode的
View > Toggle Render Whitespace)查看报错行,检查是否存在全角空格、零宽字符等不可见异常字符,直接删除后重写该行代码。
针对API提交失败问题
- 对比构建前后的Manifest权限配置:检查Windows/WSL构建后的
manifest.json,确认host_permissions或permissions包含API提交的域名。部分构建脚本可能在不同环境下替换变量出错,导致提交路径不在权限列表内(获取配置成功可能是因为配置API的权限已正确设置)。 - 对比请求Payload的编码与内容:在Chrome DevTools的Network面板查看提交请求的Payload,与Mac环境下正常请求的Payload对比,检查是否存在编码差异(如中文转码、特殊字符处理)或参数缺失。
- 关闭代码压缩排查逻辑问题:临时关闭构建工具的代码压缩/混淆功能(如禁用TerserPlugin),重新构建后测试提交功能。若恢复正常,说明压缩工具在Windows环境下的规则破坏了请求逻辑。
- 检查WSL2网络配置(仅限WSL环境):WSL2的网络代理可能与Windows主机不一致,导致请求被静默拦截。尝试关闭代理,或重置WSL2网络配置(执行
wsl --shutdown后重启)。
内容的提问来源于stack exchange,提问作者IdusOrtus
相关产品推荐
相关产品推荐

