5

私は次のようにJSDoc(3)でJavascriptファイルを文書化しようとしています:

/** 1 if gnome-bluetooth is available, 0 otherwise                              
 * @type {boolean}                                                              
 * @const                                                                                                                                           
 */                                                                             
const HAVE_BLUETOOTH = @HAVE_BLUETOOTH@;                                     

現在、ファイル(と呼ばれるconfig.js.in)はそれ自体の有効なJavascript上にありません。ファイルは、の代わりに適切な値を使用するMakefileを介して実行され@HAVE_BLUETOOTH@ます。

これでJSdocを実行しようとすると、ファイルの構文エラーが原因で(当然のことながら)失敗します。

このファイルのすべてのコードを無視するようにJSDocに指示する方法はありますが、単に注釈を考慮に入れるだけですか?@name(ドキュメントをコードから完全に分離するために、各ドックレットにタグを追加する必要があるかもしれません。それで問題ありません)。

何かのようなもの:

/** 1 if gnome-bluetooth is available, 0 otherwise                              
 * @name HAVE_BLUETOOTH
 * @type {boolean}                                                              
 * @const                                                                 
 */                    
/** @ignore */  // somehow ignore from here onwards
const HAVE_BLUETOOTH = @HAVE_BLUETOOTH@; 
/** !@ignore */ // somehow don't ignore from here onwards (although I'd be happy
                // to ignore the entire file)

可能であれば、ファイルのコード部分を変更したくない(既存のプロジェクトにドキュメントを追加している)。たとえば、私はおそらくそれを回避することができます

const HAVE_BLUETOOTH = parseInt('@HAVE_BLUETOOTH@', 10); 

これにより、パーサーが文句を言わないように、ファイルに再び有効なJS構文が作成されますが、これは、回避したい元のファイルのコードを変更していることも意味します(ドキュメントを追加することをお勧めします)。

乾杯

4

1 に答える 1

0

.lessJSDoc を使用して my and fileにコメントを付けているため、私の場合も同様.cssです。ファイルのセットで JSDoc を実行すると、同じ問題が発生します。

したがって、commentsOnlyJSDocプラグインを使用して(JSDoc 3.3.3で)問題を解決します

私はこれを作成しましたconfig.json

{
    "source": {
        "includePattern": ".+\\.(css|less)?$"
    },
    "plugins": [
        "plugin/commentsOnly"
    ]
}

commentsOnly.jsファイルをディレクトリに入れplugin/(同じフォルダにあると考えplugin/config.jsonください)、このフォルダで次のCLIコマンドを実行します。

jsdoc -c ./config.json ./assets/stylesheets/common.less

そしてお仕事です!これがファイルで機能しない理由はありません。

私があなたを助けることを願っています;)

于 2015-12-04T15:41:44.820 に答える