Зачем использовать команду «rimraf dist» в скрипте сборки

#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, и это становится очень мощным инструментом.