typescript - Hva er forskjellen mellom `extends` og `rulesDirectory` i TSLint
TSLint.json-konfigurasjonsfilen (https://github.com/palantir/tslint) støtter extends og en rulesDirectory-array som dette
{
"extends": [
"tslint-microsoft-contrib",
"tslint-config-security"
],
"rulesDirectory": [
"node_modules/tslint-eslint-rules/dist/rules",
"node_modules/tslint-microsoft-contrib",
"node_modules/tslint-config-security"
]
}Dokumentasjonen virker litt åpen for tolkning for nye brukere som ikke er kjent med verktøyet.
Jeg ville sette pris på om noen kunne klargjøre noen punkter om oppførselen til extends og rulesDirectory i forhold til bruk i VS Code-editoren og tslinting generelt.
Gir
extendskun en standardkonfigurasjon (hvis levert av pakken)?og er dette derfor forskjellig fra
rulesDirectory?Gir
rulesDirectorykun regler som du spesifikt må velge å bruke (og kreves hvis du spesifiserer regler i den øverste tslint.json)?
Bør jeg fortsatt spesifisere
tslint-pakkene både iextendsog irulesDirectory?Hvis vi antar at
extendsgir standardinnstillinger fra en annentslint-konfigurasjonsfil, vil jeg kunne spesifisererulesDirectoryog legge til en regel for å overstyre en bestemt flagg?
Bekymret fordi bare noen av reglene vises i IntelliSense-autofullføring, og bare noen få oppføringer som jeg gjerne skulle hatt mer klarhet i.
Svar #1
Hva er forskjellen mellom
extendsogrulesDirectoryi TSLint
De er veldig forskjellige.
extendslar deg bruke en eksisterende tslint-konfigurasjon og deretter utvide denrulesDirectorylar deg enkelt legge til kataloger for egendefinerte regler.
Svar #2
?Svar hentet fra tslint-konfigurasjonsdokumentasjonen per 6. april 2018:
extends?: string | string[]: Navnet på en innebygd konfigurasjonspreset (se innebygde presets nedenfor), eller en sti eller et array av stier til andre konfigurasjonsfiler som utvides av denne konfigurasjonen. Denne verdien håndteres ved hjelp av node-modulens oppløsningssemantikk. For eksempel vil en verdi på"tslint-config"fortelle TSLint å prøve å laste hovedfilen til en modul kalt "tslint-config" som en konfigurasjonsfil. Spesifikke filer inne i node-moduler kan også spesifiseres, f.eks."tslint-config/path/to/submodule". Relative stier til JSON-filer eller JS-moduler støttes også, f.eks."./tslint-config".rulesDirectory?: string | string[]: En sti til en katalog eller et array av stier til kataloger med [egendefinerte regler][2]. Disse verdiene håndteres ved hjelp av Node-moduloppløsningsemantikk, dersom enindex.jser plassert i reglerkatalogen din. Vi faller tilbake til å bruke relative eller absolutte stier hvis modulen ikke kan løses. Hvis du vil unngå modul-oppløsning, kan du bruke en direkte relativ eller absolutt sti (f.eks. med./).
Eventuelle regler spesifisert i denne rules-blokken vil overstyre de som er konfigurert i enhver grunnkonfigurasjon som utvides.