2016-03-20 3 views
0

私はそれがこのcoffeescriptからjavascriptへのコンパイル後にインデントを保持しますか?

// Generated by CoffeeScript 1.10.0 
(function() { 
    angular.module('app', ['ngAnimate', 'angular-loading-bar', 'ui.router', 'oc.lazyLoad', 'ui.bootstrap', 'ngResource']); 

}).call(this); 

のように見えるJavaScriptにそれをコンパイルすると、私は、ファイルapp.coffee

angular 
    .module('app', [ 
    'ngAnimate', 
    'angular-loading-bar', 
    'ui.router', 
    'oc.lazyLoad', 
    'ui.bootstrap', 
    'ngResource' 
    ]) 

を持っているが、私はインデントを保つことができる方法はありますか?

+0

なぜそれをしたいですか? –

+0

さて、どうしてですか?これを私の左かかとの欲望と考えてください:) – Nahtrezer

+0

あなたはjscやそれをあなたのためにフォーマットする他のツールを使って実行することができます。 –

答えて

0

CoffeeScriptコンパイラの出力をいくつかの簡単なオプション(たとえば--bare)以上に変更する方法はありません。

Cプログラムの生成されたアセンブリコードはどのように見えますか?またはあなたのPythonプログラムのバイトコードですか?通常はそうではありません。特定の問題をデバッグすることはまれにしかありません。 CofeeScriptが生成するJavaScriptコードは同じです。コンパイルされたJSコードは、人間が消費することを目的としていないことに同意してください。確かに、あなたがのようにフォーマットされています。(これはうれしいですが)問題をデバッグするために読んでいますが、それは主な関心事ではありません。

言われて、あなたは外部の書式設定ツールを介して実行できることを

が、どのように彼らは、これら二つの配列を区別します:

angular 
    .module('app', [ 
    'ngAnimate', 
    'angular-loading-bar', 
    'ui.router', 
    'oc.lazyLoad', 
    'ui.bootstrap', 
    'ngResource' 
    ]) 

one_line_array = ['ngAnimate', 'angular-loading-bar'] 

JSコードを取る以外に方法はありませんCoffeeScriptコード。

CoffeeScriptソースを変更するか、CofeeScriptソースを分析してそれに応じてJavaScript出力を変更する独自のツールを作成する必要があります。あなたはcoffee --tokensとトークンを印刷する場合は、あなたが得る:

[IDENTIFIER角度] [= =] [{{] [IDENTIFIERモジュール] [:] [ - > - >] [INDENT 2] [インデント解除2 ] [}}] [ターミネーター\ n] [IDENTIFIER角度] [。 [STRING 'アプリケーション'] [、[] [インデント4] [STRING 'ngAnimate'] [、、] [TERMINATOR \ n] [STRING ' [STRING 'oc.lazyLoad'] [、、] [TERMINATOR \ n] [STRING 'ui.router'] [STRING 'ni] .bootstrap '] [、] [ターミネータの\ n] [STRING 'ngResource'] [アウトデント4] []]] [CALL_END)] [ターミネータの\ n] [TERMINATOR \n]として改行を格納し

。これを行うツールは、(とデバッグ!)を書くことは必ずしも簡単ではありませんし、スタックオーバーフローの答えの範囲を超えて;-)

関連する問題