Tslint --fix не выполняет автофикс, но выводит проблемы lint как ошибки консоли

Я использую угловой набор для начинающих: https://github.com/AngularClass/angular-starter

и я пытаюсь заставить tslint автоматически исправить все проблемы с lint с помощью флага --fix.

Я запускаю скрипт:npm run tslint --fix src/**/*.ts

Это просто вывод, та же ошибка, о которой мне уже говорили в tslint, а не ее исправление:

консольный вывод:

ERROR: src/app/app-routing.module.ts[10, 5]: comment must start with a space
ERROR: src/app/app-routing.module.ts[2, 20]: Too many spaces before 'from'

Я что-то упускаю, что позволяет реализовать изменения?

Мои версии:

"tslint": "^5.6.0"  
"codelyzer": "^3.1.2"

Вопрос: Как я могу заставить tslint реализовать автофикс для ошибок lint?

2 ответа

К сожалению, не все нарушения линтинга устраняются автоматически. Вы можете увидеть, какие правила являются автоматически исправляемыми здесь, ища Has Fixer тег.

Я предполагаю, что "комментарий должен начинаться с пробела" регулируется comment-format правило, которое не может быть исправлено автоматически.

Я не уверен, какое правило вызывает вашу вторую ошибку, но, скорее всего, оно также не может быть исправлено автоматически.

Вот фрагмент, который вы можете запустить tslint --fix против проверки того, что некоторые нарушения исправлены, а другие нет.

//no var keyword (comment does not start with space)
var x: string = 'x';
console.log(x);

// array-type
let y: String[] = [];
console.log(y);

// ban-single-arg-parens
['1', '2'].filter((arg) => {
    console.log(arg);
});

// semicolon
let z: string = ''
console.log(z);

// no unused variable
let a: string = '';

// trailing comma
let list = ['1', '2', ];

// missing trailing comma
let obj = [
    1,
    2
];

Правила, которые нужно включить при раскрашивании вышеуказанного файла:

"semicolon": [true, "always"],
"trailing-comma": [true, {"multiline": "always", "singleline": "never"}],
"array-type": [true, "array-generic"],
"arrow-parens": [true, "ban-single-arg-parens"],

Заманчиво думать, что все пробельные ошибки будут автоматически исправимы, и, возможно, так и должно быть. К сожалению, это не так.

Обновить библиотеку tslint а также codelyzer до последней.

и затем используйте эту команду:

tslint --fix src/**/*.ts -t verbose без использования npm run

после завершения он покажет вам нерешаемые проблемы, поэтому вы должны исправить это вручную.

Вы также можете добавить его в scripts в package.json как это:

"lint-fix": "tslint --fix src/**/*.ts -t verbose"

Другие вопросы по тегам