45 Stimmen

JSLint: Kontrollkommentare (selektives Ignorieren)

Hat JSLint so etwas wie JavaScript Lint's Kommentare zur Kontrolle (z.B.. /*jsl:fallthru*/ ), damit es bestimmte Passagen ignoriert?

0 Stimmen

Welche Warnung/Regel wollen Sie ignorieren?

0 Stimmen

(Ich verbinde dies mit meinem jetzt registrierten Konto) Ich wollte den Fallthrough in einem bestimmten switch..case-Block ignorieren.

0 Stimmen

Das wäre großartig. Vor allem in Unternehmensumgebungen können globale Linting-Regeln von einer Gruppe festgelegt werden, aber aufmerksame Überschreitungen werden verstanden und akzeptiert.

30voto

napoleonss Punkte 1141

Setzen Sie

/*ignore jslint start*/

vor und

/*ignore jslint end*/ 

nach dem zu ignorierenden Code. Bsp:

function ignore(){
    /*ignore jslint start*/
    var x; var y;
    /*ignore jslint end*/
}

Oder exportieren Sie JsLint-Einstellungen, definieren Sie Ihre IgnoreErrorStart/ IgnoreErrorEnd-Symbole und importieren Sie sie.


bearbeiten
Einige Leute könnten diese Antwort mit JSHint verwechseln. In diesem Fall verwenden Sie diese:

/*jshint ignore:start*/
  <!-- code in here -->
/*jshint ignore:end*/

Entnommen aus https://stackoverflow.com/a/26012357/313501

19voto

Matthew Crumley Punkte 98564

Ja. Aus der Dokumentation [beachten Sie, dass dies aus einer älteren Version der Dokumente stammt, aber immer noch gilt]:

Die Implementierung von JSLint akzeptiert ein Optionsobjekt, mit dem Sie die für Sie akzeptable Untermenge von JavaScript festlegen können. Es ist auch möglich, diese Optionen innerhalb des Quelltextes eines Skripts zu setzen.

Eine Optionsspezifikation kann wie folgt aussehen:

/*jslint nomen: true, debug: true,
  evil: false, vars: true */

Eine Optionsangabe beginnt mit /*jslint. Beachten Sie, dass vor dem j kein Leerzeichen steht. Die Spezifikation enthält eine Folge von Name-Wert-Paaren, wobei die Namen JSLint-Optionen sind und die Werte true oder false. Eine Optionsspezifikation hat Vorrang vor dem Optionsobjekt.

In der Dokumentation wird dies nicht ausdrücklich erwähnt, aber Sie können verschiedene Prüfungen im Code mit mehreren jslint-Kommentaren aktivieren und deaktivieren (danke Dominic Mitchell).

Es gibt eine vollständige Liste der Optionen in der Dokumentation .

5voto

Andrew De Andrade Punkte 3536

Hier ist ein Code-Beispiel als Ergänzung zu Matthew Crumleys ausgezeichneter Antwort:

(function ($) {
  $.isValidEmail = function(email){
    /*jslint maxlen: 1000*/
    var EMAIL_REGEXP = /^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))$/i;
    /*jslint maxlen: 200*/
    return EMAIL_REGEXP.test(email);
  };
}(jQuery));

4voto

Mike Manard Punkte 1002

Soweit ich das beurteilen kann, wurde diese Frage hier nicht beantwortet. Der folgende Code gibt mir immer noch Validierungsfehler und ich kann JSLint nicht dazu bringen, zu akzeptieren, dass ich angesichts der TATSÄCHLICHEN PRIORITÄTEN im Moment keine Zeit habe, einen funktionierenden regulären Ausdruck zu korrigieren.

Der Fehler, den ich erhalte, bezieht sich auf ein nicht abgeschnittenes '{' und kann dazu führen, dass mein neues, professionelles Team JSLint als praktikables Werkzeug ablehnt. Es scheint keine Möglichkeit zu geben, es in Bezug auf unsere Bemühungen, effizienter zu entwickeln, zum Schweigen zu bringen, was problematisch zu sein scheint.

/*jslint browser: true, devel: true, todo: true, regexp: true */
/*global $ */
/*
    Abstract:
        + This module constitutes a layer of abstraction surrounding our bootstrap dependencies.
        + This module also contains some utility functions (so find a better place for them already!).
    Validation:
        + This module has been validated using JSLint (www.jslint.com).
*/
var shoelaceModule = (function () {
    'use strict';
    return {
        showModal: function ($target) {
            $target.modal('show');
        },

        hideModal: function ($target) {
            $target.modal('hide');
        },

        /*jsl:ignore */
        /*ignore jslint start */
        stringFormat: function (format) {
            var args = Array.prototype.slice.call(arguments, 1);
            return format.replace(/{([^{}]*)}/g, function (match, number) {
                return args[number] !== 'undefined' ? args[number] : match;
            });
        },
        /*ignore jslint end */
        /*jsl:end */

        init: function () {
            return this;
        }
    };
}());

3voto

ironfroggy Punkte 7655

Das scheint nicht der Fall zu sein. Wenn man ein wenig googelt, findet man mehrere Beiträge von anderen und Antworten von JSLint-Leuten nach dem Motto: "Reparieren Sie Ihren Code, anstatt ihn absichtlich als fehlerhaft zu bezeichnen." Das scheint nicht gerade freundlich zu sein. Natürlich sollten Sie in diesem Fall vielleicht einfach den Code korrigieren, aber die Antwort darauf überlasse ich Ihnen.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X