2017-02-03 3 views
0

Ich habe folgendes in meinem .eslintrc:ESLint immer werfen Schlüsselabstandsfehler

'key-spacing': [ 'error', { 
    'singleLine': { 
     'beforeColon' : false, 
     'afterColon' : true 
    }, 
    'multiLine': { 
     'beforeColon' : false, 
     'afterColon' : true, 
     'align'   : 'colon' 
    } 
}] 

Das Ziel sicher in einer Objektzuordnung zu machen ist, dass die folgenden Bedingungen erfüllt ist:

  1. in a Einzellinie Zuweisung, es gibt kein Leerzeichen vor jedem Doppelpunkt, , aber es gibt eine nach.
  2. in einer mehrzeiligen Zuweisung, die Doppelpunkte horizontal ausgerichtet, und gibt es ein Leerzeichen vor und nach jedem Doppelpunkt.

das Merkwürdige ist, dass die folgenden drei Code-Schnipsel:

1 [von meiner app.vue Datei].

export default { 
    name  : 'app', 
    components : { 
     todos 
    } 
} 

2 [aus meiner Datei main.js].

new Vue({ 
    el  : '#app', 
    render : h => h(App) 
}) 

3 [aus meiner Hello.spec.js Datei].

const vm = new Vue({ 
    el  : document.createElement('div'), 
    render : h => h(Hello) 
}) 

jeweils werfen Fehler auf dem Tastenabstand eslint Regel:

/Users/autoboxer/development/learning-vue/src/app.vue 
    12:3 error Missing space after key 'name' key-spacing 

/Users/autoboxer/development/learning-vue/src/main.js 
    6:2 error Missing space after key 'el' key-spacing 

/Users/autoboxer/development/learning-vue/test/unit/specs/Hello.spec.js 
    7:4 error Missing space after key 'el' key-spacing 

ich nicht von meinen Einstellungen herausfinden können, warum sollten sie die Fehler verursacht werden aufgelistet, da es die erforderlichen Räume sind nach jedes angegebene Wort, aber jede Hilfe würde geschätzt werden.

+1

Verwenden von Tabs, vielleicht? –

+0

Ich verwende Tabs. Seltsam ist, dass es sich nur über die oberste Zeile in jedem Fall beschwert. Alle drei Dateien sollten jeweils zwei Fehler werfen, aber das erste Objektmitglied ist das einzige, über das es sich beschwert. – autoboxer

+0

Das war das Problem, ich musste sie mit Leerzeichen anstelle von Tabs ausrichten. – autoboxer

Antwort

2

Konfiguration für diese Regel ist sehr komplex. Ich denke, was Sie suchen so etwas wie diese:

'key-spacing': [ 'error', { 
    'singleLine': { 
     'beforeColon' : false, 
     'afterColon' : true 
    }, 
    "align": { 
     "beforeColon" : true, 
     "afterColon" : true, 
     "on"   : "colon" 
    } 
}] 

Aber auch bei dieser Konfiguration ESLint nicht für Doppelpunkte für beliebigen Ort zu ermöglichen. Sie müssen so nah wie möglich an dem längsten Schlüsselnamen im Objekt sein.

export default { 
    name  : 'app', 
    components : { 
     todos 
    } 
} 

das richtig mit Konfiguration Fussel werde ich zur Verfügung gestellt: Also mit der obigen Konfiguration Ihren Code ändern muss.

+0

Dank Ilya, das war definitiv das halbe Problem, dem ich gegenüberstand. Die andere Hälfte ist, dass ich Tabulatoren anstelle von Leerzeichen verwendete. Wegen der Schwierigkeit, die Ausrichtung mit Tabs zu bestimmen, können sie nicht verwendet werden. Es ist in dieser Ausgabe beschrieben: https://github.com/eslint/eslint/issues/1727 – autoboxer