0.0.2 • Published 10 years ago
check-files v0.0.2
Check Files
Скрипт для проверки файлов из списка по определенным правилам.
Принимает 2 параметра: file и env. file - это путь до json'а со списком файлов, env - любая строка.
$ check-files --file list.json --env production
Cписок файлов в json'е должен быть формата "<имя-файла>":[<опции>],
.
Опции
Простейший набор опций - это true
или пустой объект ({}
). Файлы с таким набором будут проверены по дефолтным правилам.
Кроме true
можно указать объект с полями:
{
"env":строка, /* файл будет молчаливо пропущен, если переданный аргумент командной строки env не совпадает с этой строкой */
"lessThan":число|"parent", /* максимальный размер в байтах */
"biggerThan":число|"parent", /* минимальный размер в байтах */
"maxAge":число, /* максимальный интервал с момента модификации файла в секундах */
"maxNewLines":число, /* максимальное количество переносов строк */
"blacklist":строка, /* регулярное выражение, которое не должно соответствовать (match) содержимому файла */
"skip":true /* этот набор правил будет пропущен */
}
Если указано parent
- это значит, что нужно взять размер родителя.
Допускается указывать массив с несколькими наборами правил для разных env
. При этом правила, указанные без env будут применены в любом случае.
Пример:
"file1.css": [
{
"env": "production",
"maxNewLines": 1"
},
{
"env":"testing"
},
false /* если env не dev и не production - файл будет пропущен
]
Дефолтные правила
В проверяльщике зашито такое поведение:
- Минимизированные (начинающиеся с _) css файлы должны иметь не более 50 переносов строк и не должны содержать import'ы других css файлов
- Минимизированные (начинающиеся с _) js файлы должны иметь не более 50 переносов строк и не должны содержать include'ы других js файлов
- Не минимизированные css файлы должны размер более 10 байт Пример списка
{
"./smth.css":true,
"./_smth.css":{"env":"production",maxNewLines":false},
"./ftw.js":{"biggerThan":10000},
"./_ftw.js":{"env":"production","lessThan":"parent"},
"./no-bats-cats-or-rats.txt":{"blacklist":"(b|c|r)at"}
}