2016-08-23 2 views
2

zu f llen Zum Beispiel möchte ich einen bestimmten Variablennamen wie $ abc oder '$ abc' zu eliminieren, wenn es irgendwo vorhanden ist, werden wir einen Linting-Fehler werfen. Es ist speziell für es6-Code oder nur Javascript-Code.gibt es Möglichkeit, einen bestimmten Variablennamen mit eslint

Wie kann ich das in eslint tun? ist es möglich?

Wenn es nicht, was ist die Alternative, die ich tun kann, um zu überprüfen, ohne meine Code-Basis zu verschmutzen?

+0

[? Was haben Sie müde] (http://stackoverflow.com/help/ how-to-ask) Haben Sie sich die Dokumente für ["Arbeiten mit Regeln"] (http://eslint.org/docs/developer-guide/working-with-rules) angesehen? – gfullam

+1

Ich möchte Sie zu meinem Freund vorstellen [grep] (http://linux.die.net/man/1/egrep) ... – ssube

+0

@gfullam Ich habe versucht, dieses spezielle Thema über alle im Internet zu googlen, Bisher habe ich die konfigurierbaren Standardregeln verwendet, aber ich habe keine gefunden, die irgendwie mit einem benutzerdefinierten Variablennamen übereinstimmen. – Ezeewei

Antwort

-1

Sie könnten die Codebase durchsuchen und alle Dateien auf das Vorhandensein der Variablen überprüfen, die Sie löschen möchten. Es ist vielleicht ein bisschen Schwergewicht für das, was Sie brauchen, aber es könnte eine Option sein.

So etwas sollte den Trick machen. Sie müssen $ bad_variable_name durch Ihre aktuelle Variable ersetzen. Sie müssen auch etwas tun, um Ihren Build zu machen scheitern (falls gewünscht)

var fs = require('fs'); 
var checkDir = (dir) => { 
    var files = fs.readdirSync(dir); 
    files.forEach((file) => { 
    var path = dir + '/' + file; 
    var stat = fs.statSync(path); 
    if (stat && stat.isDirectory()) { 
     checkDir(path); 
    } else { 
     if(path.endsWith('this-file.js')){ //the file where this code is 
     return; 
     } 
     var fileContents = fs.readFileSync(path); 
     if(fileContents.indexOf('$bad_variable_name') > -1){ 
     console.log('$bad_variable_name found in ' + path);     
     //do something here to fail your build 
     } 
    } 
    }); 
}; 
+0

hum ... können wir dieses Ding in eslint bewegen ??? das wird großartig! – Ezeewei

5

Sie your own eslint rule in den Kommentaren, wie erwähnt zu schaffen. Hier ist ein kleines Beispiel, das alle Bezeichner Berichte (ohne Eigenschaftsnamen) mit dem Namen foo:

export default function(context) { 
    return { 
    Identifier(node) { 
     if (
     node.name === 'foo' && 
     (
      node.parent.type !== 'MemberExpression' || 
      node.parent.computed || 
      node.parent.object === node 
     ) 
    ) { 
     context.report(node, 'Do not use the variable name "foo"'); 
     } 
    } 
    }; 
}; 

anschauliches Beispiel: http://astexplorer.net/#/Lmzgbm2iRq

Verwandte Themen