JSHintとRequireJSを使用して警告「define」を無効にする方法が定義されていません


108

プロジェクトでRequireJS AMDを使用しています。プロジェクトでjshintを実行すると、次のようなエラーがスローされます

AMDスクリプト

 'define' is not defined.

モカテストケースで

 'describe' is not defined.
 'it' is not defined.

jshintでこの警告を削除するにはどうすればよいですか?

回答:


187

少し拡張する.jshintrcために、Mochaの設定を次に示します。

{
  ....
  "globals"   : {
    /* MOCHA */
    "describe"   : false,
    "it"         : false,
    "before"     : false,
    "beforeEach" : false,
    "after"      : false,
    "afterEach"  : false
  }
}

JSHint Docsから-false(デフォルト)は、変数が読み取り専用であることを意味します。

特定のファイルに対してのみグローバルを定義している場合、これを行うことができます。

/*global describe, it, before, beforeEach, after, afterEach */

41
{"mocha": true} 2.5.1 以降
9:22

@bendytreeグローバルではない一部のファイル/フォルダーにこれらのルールを追加できるかどうか知っていますか?
Gobliins '26

上記の@Gobliins Bohdanのコメント。その行をモカテストファイルの最初の行として追加すると、そのファイルにのみルールが適用されます
Isaac



8

これを.jshintrcに追加します

"predef" : ["define"]   // Custom globals for requirejs

なぜ誰かがこれに反対票を投じたのかわかりません。私はこれを自分のプロジェクトで正確に使用しており、他の回答や作業よりもきれいです。
Shital Shah 2014

19
predefは非推奨です。グローバルを使用してください
Jonathan Azulay 2014

@JonathanAzulay jshint.com/docs/options/#predefで非推奨のメモが見つかりませんでした。グローバルはカスタムのグローバルJavaScript(angular、$、jQueryなど)に使用でき、predefはウィンドウ、ドキュメント、コンソールなどの暗黙のグローバルオブジェクトに使用できると思います
Amitesh

6

パーティーに遅れますが、このオプションをあなたの中で使用してくださいjshintrc

"dojo": true

そして、あなたは赤い警告なしで平和に休むでしょう...


6

ノードjsで作業している場合。これらの2行をファイルの先頭に追加します

/*jslint node: true */
"use strict";

この質問はJSHintについてです
PointedEars 2015


1

私と同じように、Mochaを使用してWebStormでJSHintを実行しようとしている場合は、次のように入力します。

WebStorm>環境設定>言語とフレームワーク> JavaScript>コード品質ツール> JSHint

「環境」までスクロールし、「Mocha」を有効にするチェックボックスが選択されていることを確認します。これにより、Mocha用のJSHintの定義が設定されます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.