Grunt exec - Gzip все минимизированные css и js файлы в каталоге - PullRequest
0 голосов
/ 24 августа 2018

Я хочу сжать все сжатые файлы только в папке js и css.

Я выбрал этот код командной строки для stackoverflow и изменил его, чтобы искать минимизированные файлы css и js.

for i in `find | grep -E "\.min.css$|\.min.js$"`; do gzip -k9 "$i" ; done

Эта команда работает, но ищет и другие каталоги.Не желательно, так как он также ищет каталог node_modules.Как я могу указать, чтобы заглянуть в каталог js и css только.

Я пытался

css\.min.css$|js\.min.js$

, но ничего не происходит.Никаких ошибок, никаких сгенерированных файлов.

exec: {
    gzip: {
        command: 'for i in `find | grep -E "\.min.css$|\.min.js$"`; do gzip -k9 "$i" ; done',
        stdout: true,
        stderr: true
    }
}

EDIT Я просмотрел справочные страницы для команды find и написал две отдельные команды для каждой папки, то есть js и css, в моем gruntfile.js.

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

exec: {
    gzipJs: {
        command: 'for i in `find js admin/assets -name "*.min.js"`; do gzip -k9 "$i" ; done',
        stdout: true,
        stderr: true
    },

    gzipCss: {
        command: 'for i in `find css admin/assets -name "*.min.css"`; do gzip -k9 "$i" ; done',
        stdout: true,
        stderr: true
    }
}

1 Ответ

0 голосов
/ 25 августа 2018

Если я правильно вас понимаю, вы просто ищете

find admin/assets css js '(' -name '*.min.js' -o -name '*.min.css' ')' -exec gzip -k9 '{}' +

Нет необходимости в ` ` или for петле (которая, кстати, оборвется, если какой-либо из вашихимена файлов содержат пробелы).

...