46

CoffeeScript で記述されたコードがあり、生成された JavaScript を Google Closure Compiler で最適化したいので、これらのファイルを JSDoc で文書化する必要があります。

私の質問は、 *.coffee ファイルを文書化して、クロージャーコンパイラー用の動作する JSDoc を含む JavaScript を生成するにはどうすればよいですか?

もう 1 つ質問: *.coffee に 1 行のコメントを残す方法はありますか?

4

5 に答える 5

79

CoffeeScript 入力:

### define function variable before block to avoid code being appended to closing part of JSDoc comment ###
cube = null

###*
 * Function to calculate cube of input
 * @param {number} Number to operate on
 * @return {number} Cube of input
 ###

cube = (x) -> x*x*x

Windows コマンド プロンプトからの JavaScript 出力:coffee -cpb src.coffee

// Generated by CoffeeScript 1.6.3
/* define function variable before block to avoid code being appended to closing part of JSDoc comment*/

var cube;

cube = null;

/**
 * Function to calculate cube of input
 * @param {number} Number to operate on
 * @return {number} Cube of input
*/

cube = function(x) {
  return x * x * x;
};

編集

他の回答で詳しく説明されているように、 CoffeeScript 1.7.1 には、この問題を解決するためのより良い方法があります。

于 2012-02-06T08:12:38.907 に答える
6

(たくさん) 実験する必要がありますが、###コメントはあなたの味方です。

###coffee-script コンパイラは、フォーム (ドキュメントはこちら)を使用するコメントを保持します。

JsDocサイトの「try coffeescript」機能を使用して、関数の非常に単純なフラグメントを作成しようとしました:

###* Doc for this function.###
foo = -> 'bar'

これにより、次のことが得られました。

/** Doc for this function.
*/
var foo;
foo = function() {
   return 'bar';
 };

私は の専門家ではありませんが、関数の上のステートメントが問題を引き起こすとJsDoc推測しています。前に宣言しvar foo;ていたら、多分..foo

それがどうなるか聞いてよかったです。

于 2011-10-20T14:59:52.867 に答える
2

私はこれに反対することをお勧めします。すべてのコードをJSDocすることは骨の折れるプロセスであり、ClosureCompilerのメリットはほとんどまたはまったく得られない可能性があります。グーグル自体の外では、ほとんど誰もこれをしません。CoffeeScripters / JavaScriptersは一般的に、doccoのような軽量のドキュメントツールを好みます。

また、ClosureCompilerにはGoogleのブランド名が付いていますが、多くの場合、UglifyJSがより効率的なミニファイツールであることが証明されています。(jQueryは最近それに切り替えました。)

もう1つの質問:*。coffeeに1行のコメントを保持する方法はありますか?

はい:

### foo ###

また

`// foo`
于 2011-10-20T15:02:18.693 に答える