2016-08-07 5 views
0

私は、別のスクリプトファイルを読み込んでそこに定義されている関数を使用する一連のスクリプトを用意しています。他人が読み込んだファイルに対してESLintを動作させる

例えば、私はそれを見ることができるように、以下のソース

function perfectNumberCheck(num) { 
    if(num == 1) 
    { 
     return 0; 
    } 
    var halfNum = (num/2) + 1; 
    var sum = 0; 
    var retVal = 0; 
    for(var i=1 ; i < halfNum; i++){ 
     if(num % i === 0){ 
      sum = sum + i; 
     } 
    } 
    if(sum == num){ 
     retVal = 1; 
    } 
    else { 
     retVal = 0; 
    } 
    return retVal; 
} 

を持つ別のスクリプトファイル、helper.jsを持っているのは、私は次のソース

load("helper.js"); 
var stdin = new java.io.BufferedReader(new java.io.InputStreamReader(java.lang.System['in'])); 
function readline() { 
    var line = stdin.readLine(); 
    return line; 
} 
var N = parseInt(readline()); 
for(var i = 0; i< N; i++) 
{ 
    print("fd630b881935b5d43180ff301525488a"); 
    var num = parseInt(readline()); 
    var ans = perfectNumberCheck(num); 
    print(ans); 
    print("dc29e6fa38016b00627b6e52956f3c64"); 
} 

main.jsスクリプトを持っているとしましょう、main.js関数perfectNumberCheckを使用します。現在、eslint main.js helper.jsまたはeslint *.jsを使用して両方のファイルでESLintを実行すると、main.jsで使用されていてもno-unused-varsエラー'perfectNumberCheck' is defined but never usedが発生します。

このエラーを構成に残しておきたいが、そのような場合にESLintに表示させたくない。

コード全体を1つのスクリプトファイルに書き込まなくても、これらの依存関係をESLintで解決する方法はありますか?

答えて

0

あなたは関数がそのファイルの外に他の場所で使用されていることをno-unused-varsを伝えるためにhelper.js/* exported perfectNumberCheck */のようなコメントを追加することができます。

/* exported perfectNumberCheck */ 
function perfectNumberCheck() { 
    // ... 
} 

それ自体で、ESLintは、単独で各ファイルをlintsので、定義された識別子を解決しません。他のファイル。 /* exported ... */ commentglobalsを使用すると、他のファイルの依存関係をESLintに知らせることができます。

エクスポートされたコメントは、グローバルスコープ内に存在することによって他の場所で使用されている名前を示すために使用されるため、グローバルスコープではないファイルのソースには影響しません。 /* exported */は、以下のいずれかのために影響を及ぼさないこと

注:

  • parserOptions.sourceTypemodule
  • ときecmaFeatures.globalReturnである場合環境はnode又はcommonjs
  • である場合、具体的に、ドキュメントを引用true
+0

私はそれを試みました。残念ながら、それは動作しませんでした。 –

+0

'/ * exported perfectNumberCheck * /' 'helper.js'で、' eslint helper.js'を実行しても、 '' perfectNumberCheck ''が定義されていますが、使われませんでした。 [オンラインデモ](http://eslint.org/demo/)でそれを再現するコードブロックを共有できますか? – btmills

+0

質問で 'helper.js'のコードブロックを使用することができます。デモウェブサイトの_Rules Configuration_の下に_node_を選択してください。最初の行に '/ * exported perfectNumberCheck * /'というコメントがあると、** 2:10のエラーが発生します。 'perfectNumberCheck'は定義されていますが使用されていません。 (no-unused-vars)** –

関連する問題