Transcrypt ES6模块Sourcemap在Firefox中失效,Chrome正常求助
我来帮你排查Firefox开发者版里Transcrypt ES6模块sourcemap不工作的问题,结合你描述的场景(Chrome正常、文件同目录用http-server服务),分享几个针对性的解决方案:
确认Transcrypt编译参数是否正确
编译时一定要同时启用ES6模块和sourcemap生成,命令应该类似:transcrypt --es6 --map your_solar_system.py要是漏了
--map参数,根本不会生成对应的.map文件,Firefox自然找不到Python源文件。检查sourcemap的关联路径
编译完成后,打开生成的JS文件,看末尾的sourcemap注释是不是正确的://# sourceMappingURL=your_solar_system.map因为所有文件都在同一目录,这个相对路径应该没问题,但要注意文件名的大小写(Firefox对大小写敏感),别出现拼写错误。同时确认
.map文件和.py源文件确实都在http-server的服务目录下。检查Firefox调试器的设置
打开Firefox开发者工具的Sources面板,点击右上角的齿轮图标,确保以下选项都已勾选:- Enable source maps
- Show original sources
有时候这些选项会被意外关闭,导致无法加载原始源文件。
强制刷新并清空缓存
Firefox的缓存可能会干扰新生成的sourcemap加载,试试:- 勾选开发者工具设置里的「Disable cache (while DevTools is open)」
- 按
Ctrl+Shift+R(Windows/Linux)或Cmd+Shift+R(Mac)强制刷新页面
这样能确保浏览器加载最新的JS和sourcemap文件。
验证http-server的文件响应头
用开发者工具的Network面板,查看.map和.py文件的响应头,确保Content-Type是正确的:.map文件应该是application/json.py文件应该是text/x-python
如果http-server返回的Content-Type不对,Firefox可能无法正确识别这些文件类型,进而无法解析sourcemap。
另外,你提到的Python代码示例:
from itertools import chain class SolarSystem: planets = [...]
编译后要确保对应的your_solar_system.js、your_solar_system.map和your_solar_system.py都在同一目录下,http-server能正常访问到这些文件。
内容的提问来源于stack exchange,提问作者Jacques de Hooge

