Shelljs — это синтаксический анализатор языка сценариев в Node.js с богатыми и мощными базовыми разрешениями для операций (Windows/Linux/OS X). Shelljs — это, по сути, подключаемый модуль инкапсуляции команд на уровне уровня, основанный на узле, так что разработчики внешнего интерфейса могут напрямую писать команды оболочки в наиболее знакомом коде javascript для достижения функций, не полагаясь на Linux или инструмент преобразования, подобный cmder.
Решать проблему
Сценарии оболочки знакомы во внешнем интерфейсе, и каждый использовал их в конфигурации package.json для"build": "umi build && node zip.config.js"Например, npm run build сначала выполнит сборку umi, а затем запустит скрипт zip.config.js.Что делает скрипт zip.config.js, так это то, что если папки сборки нет, папка сборки будет сгенерирована и сжата и упакован с помощью easyzip. В противном случае, если папка сборки существует, создайте zip-архив или другие файлы, необходимые компании. То, что делает shelljs, — это автоматизация, избавляющая от трудоемких повторяющихся рутинных действий, повышающая эффективность разработки и рабочее настроение.
Используется для копирования одного или нескольких исходных файлов или каталогов в указанный файл или каталог.
Общие параметры:
-f:force (default behavior)
-L: follow symlinks
-r,-R: recursive
-n: no-clobber
-u: only copy if source is newer than dest
-P: don't follow symlinks
cd
Переключить рабочий каталог на указанный относительный или абсолютный путь. cd.. Чтобы вернуться на предыдущий уровень, cd- возвращает в предыдущий каталог.
ls
Используется для отображения списка целей.
Общие параметры:
-a: показать все файлы;
-C: отображать результаты запроса в нескольких столбцах;
-l: отображать результаты запроса в длинном формате с одним столбцом (в отличие от -C);
-R: процессы каталогов рекурсивно;
-A: Все файлы (включая файлы, начинающиеся с ., кроме . и ..)
Замените содержимое в file_array, соответствующее search_regex, заменой, которая поддерживает обычную самоссылку группы захвата. Обрабатывайте одну строку за раз, отправляйте содержимое буфера на экран после обработки, затем обрабатывайте следующую строку и повторяйте цикл до конца.
Общие параметры:
-i: прямой исходный файл
cat([options,] file [, file ...])
Чтение содержимого одного или нескольких файлов.Если указан один файл, считывается файл, а если указано несколько файлов, содержимое объединяется и считывается.
Доступные Варианты:
-n: number all output lines
exec(command [, options] [, callback])
Выполнить пришедшую команду
async: выполнять ли асинхронно, по умолчанию установлено значение false, оно будет автоматически включено при передаче обратного вызова в
молчание: не выводить информацию на консоль, по умолчанию false
кодировка: по умолчанию utf8 Если не указано иное, команда выполняет данные данные синхронно. в синхронизации
режиме он возвращает ShellString (совместимый с ShellJS v0.6.x, возвращает
объект вида {code:..., stdout:..., stderr:...}). В противном случае это вернет дочерний процесс
объект, а обратный вызов получает параметры (code, stdout, stderr). Примечание. Для долгоживущих процессов лучше всего запускать exec() асинхронно.
chmod
Установить права доступа к файлам
-c: выводить диагностику для каждого обработанного файла
-v: like verbose, but report only when a change is made
-R: change files and directories recursively
u означает владельца файла, g означает ту же группу, o означает другую, a означает все + означает увеличение полномочий, - означает отмену полномочий, = означает только установку полномочий r означает доступный для чтения, w означает доступный для записи, x означает исполняемый файл, X означает, что файл является подкаталогом
chmod(755, '/Users/brandon');
chmod('755', '/Users/brandon'); // same as above
chmod('u+x', '/Users/brandon');
chmod('-R', 'a-w', '/Users/brandon');
pushd([options,][dir|'-N'|'+N'])
Доступные Варианты -n: подавлять обычные изменения каталогов при добавлении каталогов в стек, чтобы манипулировать только стеком
параметр
dir: сделать текущий рабочий каталог вершиной стека, затем сделать эквивалент cd dir
+N: переместите N-й каталог (слева в списке, напечатанном каталогами, начиная с нуля) в начало списка, вращая стек.
-N: переместить N-й каталог (справа от списка, напечатанного каталогами, считая с нуля) в начало списка, вращая стек.
Сохраните текущий каталог в верхней части стека каталогов, затем перейдите в каталог cd. Без аргументов pushd меняет местами первые два каталога. Возвращает массив путей в стеке.
popd([опции,]['-N'|'+N'])
Доступные Варианты: -n: подавлять обычные изменения каталогов при удалении каталогов из стека, чтобы можно было манипулировать только стеком.
параметр:
+N: удалить N-й каталог (считается слева от списка, напечатанного каталогами), начиная с нуля
-N: Удалить N-й каталог (считая справа от списка, напечатанного каталогами), начиная с нуля.
Если аргументы не указаны, popd удалит каталог верхнего уровня из стека и выполнит cd в новый каталог верхнего уровня. Элементы нумеруются с 0, начиная с первого каталога, указанного в dirs, то есть popd эквивалентен popd+0. Возвращает массив путей в стеке
dirs([options|'+N'|'-N']
Доступные Варианты: -c: очистить стек каталогов, удалив все элементы
параметр:
+N: Отобразить N-й каталог (считая слева в списке, напечатанном каталогами при вызове без параметров), начиная с нуля
-N: отображать N-й каталог (считая справа от списка, напечатанного каталогами при вызове без параметров), начиная с нуля
Отображает список запомненных в настоящее время каталогов. Возвращает массив путей в стеке или один путь, если указано +N или -N.
найти(путь[ путь...])
найти файлы
console.log(find('../Config/application.js'))
вернуть путь_массив
grep([options,]regex_filter,file[file...])
В отличие от fing для поиска файлов, grep используется для поиска содержимого.
Доступные Варианты:
-v: инвертировать значение регулярного выражения и вывести строки, не соответствующие условию
Возвращает содержимое файла, отсортированное построчно. сортировать несколько
тестовое задание()
определение типа файла
Доступные Варианты: '-b', 'путь': true, если путь является блочным устройством '-c', 'путь': true, если путь является символьным устройством '-d', 'путь': верно, если путь является каталогом '-e', 'путь': true, если путь существует '-f', 'путь': верно, если путь является обычным файлом '-L', 'путь': верно, если путь является символической ссылкой '-p', 'путь': true, если путь является каналом (FIFO) '-S', 'путь': true, если путь является сокетом
if (!test('-f', path)) continue;
uniq([опции,][вход,[выход]])
Доступные Варианты:
-i: игнорировать регистр при сравнении
-c: сортировать префиксы по количеству вхождений
-d: печатать только повторяющиеся строки, по одной на каждую строку
ShellString()
Конструктор преобразует строку в строку оболочки, а преобразованная строка поддерживает цепочку вызовов специальных команд оболочки.
ShellString('hello world')
ShellString.Prototype.to()
Вывести shellString в указанный файл, что эквивалентно > на языке сценариев
ShellString.Prototype.toEnd()
Добавить shellString к указанному файлу, что эквивалентно >> на языке сценариев
env['VAR_NAME']
указывает на process.env
Поддержка цепочек вызовов Pipes
sed, grep, cat, exec, to, toEnd все поддерживают связанные вызовы