12. Линтеры
Чтобы заранее отловить потенциальные ошибки в коде, настоятельно рекомендуется использовать линтер.
Самый удобный вариант – ui5plugin-linter. Он вшит во все современные шаблоны ui5 проектов от sap. И интегрирован с расширением SAP Fiori Tools - Extension Pack в VSCode, подсвечивая ошибки в реальном времени.
Как использовать:
- Если у вас установлена VSCode с плагинами SAP Fiori Tools - Extension Pack. У вас всё уже работает, достаточно добавить конфиг-файл в корень проекта. (назвав его .ui5pluginrc.json )
- Если хотите использовать через CLI:
- требуется установить линтер
( npm install ui5plugin-linter -g ) - Сложить файл с конфигурацией (ниже) в корень проекта, назвав .ui5pluginrc.json
- Вызвать в директории проекта ui5linter в консоли
- требуется установить линтер
Рекомендуемая конфигурация:
.ui5pluginrc.json
{
"ui5": {
"ui5parser": {
"excludeFolderPatterns": ["**/resources/**", "**/dist/**", "**/node_modules/**", "**/test/**", "**/test-resources/**"]
},
"ui5linter": {
"severity": {
"WrongParametersLinter": "Error",
"WrongOverrideLinter": "Error",
"WrongImportLinter": "Warning",
"WrongFilePathLinter": "Warning",
"WrongFieldMethodLinter": "Warning",
"WrongClassNameLinter": "Warning",
"UnusedTranslationsLinter": "Information",
"UnusedNamespaceLinter": "Warning",
"UnusedMemberLinter": "Information",
"TagLinter": "Information",
"TagAttributeLinter": "Information",
"TagAttributeDefaultValueLinter": "Information",
"PublicMemberLinter": "Information",
"InterfaceLinter": "Error",
"AbstractClassLinter": "Error",
"UnusedClassLinter": "Error",
"WrongNamespaceLinter": "Warning",
"DuplicateTranslationLinter": "Error",
"EventTypeLinter": "Error"
},
"usage": {
"WrongParametersLinter": true,
"WrongOverrideLinter": true,
"WrongImportLinter": true,
"WrongFilePathLinter": true,
"WrongFieldMethodLinter": true,
"WrongClassNameLinter": true,
"UnusedTranslationsLinter": true,
"UnusedNamespaceLinter": true,
"UnusedMemberLinter": true,
"TagLinter": true,
"TagAttributeLinter": true,
"TagAttributeDefaultValueLinter": true,
"PublicMemberLinter": true,
"InterfaceLinter": true,
"AbstractClassLinter": true,
"UnusedClassLinter": true,
"WrongNamespaceLinter": true,
"DuplicateTranslationLinter": true,
"EventTypeLinter": true
},
"idNamingPattern": "",
"eventNamingPattern": ""
}
}
}