12. Линтеры

Чтобы заранее отловить потенциальные ошибки в коде, настоятельно рекомендуется использовать линтер.

Самый удобный вариант – ui5plugin-linter. Он вшит во все современные шаблоны ui5 проектов от sap. И интегрирован с расширением  SAP Fiori Tools - Extension Pack в VSCode, подсвечивая ошибки в реальном времени. 

Как использовать: 

  1. Если у вас установлена VSCode с плагинами SAP Fiori Tools - Extension Pack. У вас всё уже работает, достаточно добавить конфиг-файл в корень проекта. (назвав его .ui5pluginrc.json )
  2. Если хотите использовать через CLI: 
    1. требуется установить линтер 
      ( npm install ui5plugin-linter -g )
    2. Сложить файл с конфигурацией (ниже) в корень проекта, назвав .ui5pluginrc.json
    3. Вызвать в директории проекта 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": ""
        }
    }
}

См. также