2012-01-20 9 views
2

私はYesodで生成されたいくつかのJavaScriptコードのデバッグに取り組んでいます。 Yesodは、関数内にブレークポイントを設定することを不可能にする、各関数で1行にjavascriptファイルを生成します。この動作を変更して、javascriptがデバッグ用の書式を保持できるようにする方法はありますか?あなたのFoundationファイルの扱いでYesod javascript formatting

答えて

7

私は現在yesod 0.9を使用していますが、彼の意志は他のバージョンでもうまくいくと思います。以下のためのあなたのFoundation.hsで

ルック:

addStaticContent = addStaticContentExternal minifym base64md5 Settings.staticDir 
              (StaticR . flip StaticRoute []) 

し、それを変更します - >(\ BS - >右BS)だけ来るのラップ

addStaticContent = addStaticContentExternal (\bs -> Right bs) base64md5 Settings.staticDir 
              (StaticR . flip StaticRoute []) 

私はminifymを変更しましたコンテンツ、javascript私たちの場合は、返されます。または、dave4420は、minifymを(\ bs-> Right bs)と置き換えるだけです。point free styleと同等です。 これはあなたのjavascriptのフォーマットを維持する必要があります。

+5

なぜ '(\ bs->右bs)'で、単に '右'ではないのですか? – dave4420

+0

ポイントフリースタイルのhaskell wikiへのリンクの代わりに良いポイントが追加されました。 – Davorak

+0

もちろん、元のコードは '(\ bs - > minify bs)'ではなく 'minify'を使います。私はちょっとポイントフリースタイルを使用して---それは理解することは困難であり、変更するのが難しい---この場合に適用される通常の議論を見ていない。 – dave4420

0

addStaticContent機能を有効または(そのままファイルの内容を残してRight)を最初の引数として異なる縮小機能を渡すことによって、縮小を無効にすることができます特殊なケースとして、.jsファイル。これはあなたに管理可能Javascriptの構文を与える

pretty-print button

:あなたはJavaScriptのデバッグのためにGoogle Chromeを使用している場合

また、あなたはこのようになります。これは、縮小さJavascriptをデバッグするために、かなり-印刷ボタンを使用することができます。

JavaScriptは、特殊目的のシェイクスピア言語で処理されるすべてのものを、Yesodが縮小するというルールの例外です。シェイクスピアの現在の実装では、HTMLやCSSの非ミニプレゼンテーションを得ることは一般的に不可能です。

+0

ありがとうございました。そのクロムボタンは最高です。 –

+0

私はそれが特定のフレームワークよりも縮小されたjavascriptの問題だと思います。この問題はC/C++/Java/C#/ etcにも存在し、ほとんどのデバッガには同様の便利な回避策がありません。 –

+2

"Yesodがデータをどのように扱わなければならないかについて非常に厳格な制限を課すという事実は、多くの開発者が代替ソリューションを検討している理由です..." –