Yesod で生成された JavaScript コードのデバッグに取り組んでいます。Yesod は各関数を 1 行にまとめた JavaScript ファイルを生成するため、関数内にブレークポイントを設定することができません。JavaScript がデバッグ用のフォーマットを保持するように、この動作を変更する方法はありますか?
2 に答える
私は現在 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 -> Right bs) を変更しました。または、dave4420 が指摘しているように、minifym を (\bs -> Right bs)ポイント フリー スタイルの同等の Right に置き換えます。これにより、JavaScript がその形式を保持するようになります。
ファイル内のaddStaticContent
関数は、Foundation
ファイルを特別なケースとして扱い.js
ます。これにより、別の縮小関数を最初の引数として渡すことで縮小を有効または無効にすることができます (Right
ファイルの内容はそのままにしておきます)。
さらに、Javascript のデバッグに Google Chrome を使用している場合は、pretty-print ボタンを使用して、縮小された Javascript を次のようにデバッグできます。
これにより、扱いやすい Javascript 構文が得られます。
JavaScript は、Yesod が特別な目的のシェイクスピア言語によって処理されるすべてのものを縮小化するという規則の例外です。一般に、シェイクスピアの現在の実装では、縮小されていない HTML および CSS の表現を取得することはできません。