#javascript #node.js #npm #babeljs
#javascript #node.js #npm #babeljs
Вопрос:
В чем причина запуска команды «rimraf dist» в скрипте сборки в файле package.json?
"scripts": {
"build": "rimraf dist ..."
},
Ответ №1:
Пакет rimraf, который вы, вероятно, найдете в devDependencies
разделе package.json
«У вас есть», используется для безопасного удаления файлов и папок на всех платформах (Unix и Windows).
Когда у вас есть система сборки, вы также должны убедиться, что вы удалили выходные файлы перед повторной отправкой содержимого вывода сборки (особенно в случае, если вы удалили некоторые файлы, которые больше не нужны). Вы могли бы пойти дальше и сделать:
"scripts": {
"clean": "rm ./dist/* -Recurse -Force"
}
Но это будет работать только в Windows, а иногда также доставит вам проблемы из-за проблем, связанных с использованием *
. В Unix команда будет другой. Чтобы улучшить ситуацию, rimraf
выполняет удаление для вас, чтобы вы могли просто вызвать его в своем scripts
/ clean
section:
"scripts": {
"clean": "rimraf dist"
}
Это гарантирует, что ваша package.json
(ваша система сборки) будет кроссплатформенной.
Комментарии:
1. Я также видел, как она использовалась в разделе скрипты / предварительная сборка.
Ответ №2:
rimraf
rm -rf
Утилита для nodejs
$ rimraf dist
удаляет dist
файл или папку.
Я предполагаю, что скрипт сборки помещает материал в dist
каталог и хочет удалить старый материал с момента его последней сборки.
Комментарии:
1. Почему бы просто не использовать
rm -rf
вместо этого? Я имею в виду, что мы получаем с помощью rimraf, чего мы не получаемrm -rf
?2. @TaranjeetSingh вот хорошая информация о том, почему ее не использовать: ashleysheridan.co.uk/blog/Why You Should Not Use Rimraf
Ответ №3:
Чтобы убедиться, что все старые файлы удалены из папки до того, как скрипт скомпилирует файлы.
Ответ №4:
Что на самом деле нужно знать, так это то, что rimraf dist
делает скрипт, и это просто — это очистка папки dist, чтобы дать вам возможность начать работу с тем, что считается веб-приложением или приложением TypeScript, требующим компиляции определенного уровня.
Но этим дело не ограничивается. Rimraf — это пакет, который позволяет вам использовать возможности rm -rf ./dist
, специфичные для ОС Linux. Как было предложено в приведенном выше комментарии, эта команда вызовет проблемы в Windows, особенно когда есть каталог, который не является пустым, или путь к файлу становится слишком длинным (очень часто с вложенными зависимостями npm). Rimraf обойдет эти исключения, как если бы вы работали в Linux, и это становится очень мощным инструментом.