8

/ srcフォルダーに保存されている、健全性と開発者の使いやすさのために、アプリケーションロジックを複数のJavascriptファイルに分割したいと思います。これらのファイルは、ビルドプロセス中にlintされ、/ dist/app.jsに連結される必要があります。ビルドプロセスにはgruntを使用しています。これは、すでに便利なlintおよびconcatタスクが付属しているためです。

    +
    |-grunt.js
    |-readme
    |-ベンダー
       | -backbone.js
    |-src
       |-core.js
       |-user.js
    |-dist
       | -app.js

私は厄介な問題に直面しています。私はアプリケーション構造にbackbone.jsを使用しており、ほとんどのソースファイルはBackbone.Modelを拡張してモデルを定義することから始まります。これらのファイルをリントするとき、JSHintはバックボーンが定義されていないと文句を言います。当然のことながら、バックボーンは外部の独自のディレクトリにあります。必要なすべてのスクリプトを正しい順序で含めることは、htmlで行われていると思います。個々のソースファイルは、それ自体についてのみ知っている必要があります。

grunt.jsのlintのundefフラグをfalseに設定することで、これらの未定義の警告を抑制できることはわかっていますが、タイプミスへの一般的なポインターであるため、アプリケーション内の他の未定義の変数について警告するために、 trueに設定したままにしておきます。 。それらをリントする前に、どのファイルを含めるかをうなり声(またはリント)に伝えるクリーンな方法はありますか?ビルドプロセスまたはアプリケーションアーキテクチャで何か問題がありますか?それとも、これは単に私が一緒に暮らさなければならないものですか?

4

2 に答える 2

11

jshintオプションを使用すると、grunt.jsファイルで、使用している他のライブラリに由来するグローバルのリストを指定できます。



    jshint: {
      options: {
        curly: true,
        eqeqeq: true,
        immed: false,
        latedef: true,
        newcap: true,
        noarg: true,
        sub: true,
        undef: true,
        boss: true,
        eqnull: true,
        browser: true
      },

      globals: {
        jQuery: true,
        Backbone: true,
        _: true
      }
    },

globals下部の設定に注意してください。これにより、JSHintはこれらの変数を無視できますが、undef: true設定は実行されます(上記のとおり)。

于 2012-08-15T01:09:51.517 に答える
0

別のアプローチ(うなり声に依存しない)は、jsファイルにjshintコメントを追加することです。

/* global Backbone, jQuery, _ */
于 2013-04-23T18:55:37.807 に答える