我正在调试在Yesod中生成的一些javascript代码。 Yesod在一行中生成包含每个函数的javascript文件,这使得无法在函数内设置断点。有没有办法改变这种行为,以便javascript保留格式以进行调试?
答案 0 :(得分:7)
我目前正在使用yesod 0.9,但我敢打赌他的也会在其他版本中使用。
查看您的Foundation.hs:
addStaticContent = addStaticContentExternal minifym base64md5 Settings.staticDir
(StaticR . flip StaticRoute [])
并将其更改为:
addStaticContent = addStaticContentExternal (\bs -> Right bs) base64md5 Settings.staticDir
(StaticR . flip StaticRoute [])
我改变了minifym - > (\ bs - >右bs)只包含即将发布的内容,在我们的案例中为javascript,并返回。或者dave4420指出下面只需用(\ bs - >右bs)point free style等效的权利替换minifym。 这应该使您的javascript保持其格式。
答案 1 :(得分:0)
addStaticContent
文件中的Foundation
函数将.js
文件视为一种特殊情况,它允许您通过传递不同的缩小函数作为第一个参数来启用或禁用缩小({{ 1}}保持文件内容不变。
此外,如果您使用谷歌浏览器进行Javascript调试,您可以使用漂亮的打印按钮来调试缩小的Javascript,如下所示:
这为您提供了可管理的Javascript语法。
Javascript是规则的例外,Yesod缩小了由特殊用途莎士比亚语言处理的所有内容。通常不可能使用莎士比亚的当前实现来获得HTML和CSS的非微型表示。