Я использую инструмент AST для создания собственного правила esLint. Я хочу создать правило, которое выдает предупреждение всякий раз, когда я использую жестко кодированный strings
в вызове function
.
Пример:
var greet = 'Hello';
console.log('Hello') // throws an warning
console.log(greet) // doesn't throw a warning
Я построил правила вот так:
module.exports = {
rules: {
'no-hardcoded-strings': {
create(context) {
return {
Literal(node) {
if (node.raw) {
context.report(node, 'Do not use hardcoded strings');
}
},
};
},
},
},
};
Не работает, это AST детская площадка . Вы можете увидеть разницу между двумя литералами, которая является свойством raw
. Однако мое правило не работает.
Редактировать
Включен файл .eslintrc.js
:
plugins: ['custom-rule'],
extends: [
'airbnb-base',
'plugin:cypress/recommended',
'plugin:prettier/recommended',
'plugin:json/recommended',
],
settings: {
'import/resolver': 'webpack',
},
rules: {
'import/prefer-default-export': 'off',
'import/no-default-export': 'warn',
'eqeqeq': 'warn',
'import/no-extraneous-dependencies': 'off',
'camelcase': 'error',
'no-unused-expressions': 'error',
'custom-rule/no-hardcoded-strings': 1
},