Musisz zmodyfikować dwa pliki tslint.json i .angular-cli.json, przypuśćmy, że chcesz zmienić na myprefix :
W pliku tslint.json po prostu zmodyfikuj następujące 2 atrybuty:
"directive-selector": [true, "attribute", "app", "camelCase"],
"component-selector": [true, "element", "app", "kebab-case"],
zmień „app” na „myprefix”
"directive-selector": [true, "attribute", "myprefix", "camelCase"],
"component-selector": [true, "element", "myprefix", "kebab-case"],
W pliku angular.json po prostu zmodyfikuj przedrostek atrybutu:
(w przypadku wersji kątowej mniejszej niż 6 nazwa pliku to .angular-cli.json)
"app": [
...
"prefix": "app",
...
zmień „app” na „myprefix”
"app": [
...
"prefix": "myprefix",
...
Jeśli w takim przypadku potrzebujesz więcej niż jednego prefiksu, jak wskazuje @Salil Junior :
"component-selector": [true, "element", ["myprefix1", "myprefix2"], "kebab-case"],
Jeśli tworzysz nowy projekt za pomocą Angular cli, użyj tej opcji wiersza poleceń
ng new project-name --prefix myprefix
ng generate component
nawet po aktualizacjitslint.json
:You are using different prefix from app, you might get lint errors. Please update "tslint.json" accordingly.
musiałem zaktualizowaćapps.prefix
właściwość w,.angular-cli.json
aby pozbyć się tego ostrzeżenia.tslint.json
można znaleźć dodatkowy plik<your-project>/src/tslint.json
zawierający reguły selektora komponentów i dyrektyw. Jeśli zastosowałeś powyższą poprawkę i nadal nie działa, upewnij się, że ten plik nie zastępuje konfiguracji globalnej. ( github.com/mgechev/codelyzer/issues/620#issuecomment-394131604 )angular-cli.json
: "prefix": "defaultPrefix" tak, aby angular-cli użył go do generowania komponentów.Tak po prostu
tslint.json
:źródło
Właściwie, z Angular Cli, możesz po prostu zmienić tag „prefiks” w tablicy „apps” w swojej
angular-cli.json
, znajdującej się w aplikacji głównej.Zmiana na „TheBestPrefix”, w ten sposób.
Podczas generowania nowego komponentu za pomocą interfejsu CLI
ng g component mycomponent
znacznik komponentu będzie miał następującą nazwę"TheBestPrefix-mycomponent"
źródło
Od
angular 6/7
teraz będzietslint.json
wewnątrz twojego/src
folderu, który zawieratslist
reguły dla twojego komponentu i dyrektyw.Zmiana w tym pliku rozwiąże problem.
źródło
tslint.json
plik główny .directive-selector
dodaniu,"directivePrefix"
które będzie prefiksem dla dyrektywy i to samo dla komponentówDzięki @Aniruddha wskazującemu zmiany w Angular 7:
utwórz
tslint.json
wsrc/app/shared
celu rozszerzeniaapp/tslint.json
:Jedna rzecz - jeśli w app.component.spec mockujesz komponent ze współdzielonego modułu, będzie on narzekał, że twój selektor prób zaczyna się od „shared” zamiast „app”. Wydaje mi się, że ma to sens - powinienem tworzyć moje makiety w module skąd pochodzą.
źródło
tslint.json
"selektor komponentu": [prawda, "element", "aplikacja", "skrzynka na kebab"]
ten „kebab-case” wymusza na selektorze dowolnego komponentu ten „-” case.
na przykład możesz mieć selektor taki jak „ test aplikacji ”, „ aplikacja-moja ” w ten sposób.
A jeśli chodzi o twój błąd, musisz uruchomić selektor komponentów od „app”, jak właśnie wspomniałem w przykładzie.
Uważam, że nie należy wprowadzać żadnych zmian w tslint.json, chociaż rozwiązałoby to problem, ale zmiana w tslint nie jest dobrą praktyką.
Dzięki
źródło