где webpack кеширует свою работу для восстановления? - PullRequest
1 голос
/ 27 июня 2019

На этой странице показано много режимов компиляции для веб-пакетов, и некоторые из них перестраивают быстрее, чем они сборка .

enter image description here

Я пытаюсь измерить скорость различных инструментов сборки, но не могу понять, что я строю или перестраиваю .Я имею в виду ... какие файлы мне нужно очистить, чтобы убедиться, что я перестраиваю?Просто целевой каталог?Или где-то есть другой кеш?

Например, вторая сборка здесь - это сборка или перестроение во второй раз?

node_modules/.bin/webpack --output-path ~/target
rm -r target
node_modules/.bin/webpack --output-path ~/target

, если перестраивает , что делать?Я должен очистить, чтобы сделать это построить снова?

и второй здесь построить или восстановить ?

node_modules/.bin/webpack --output-path ~/target
node_modules/.bin/webpack --output-path ~/target

И если это еще одна сборка , что мне нужно сделать, чтобы восстановить ?

(webpack 4)

1 Ответ

0 голосов
/ 02 июля 2019

TL; DR: «восстановление» происходит только в режиме watch или development в режиме .

Webpack

Webpack, похоже, не кэширует файл, а только в памяти.

кэш

Кэшируйте сгенерированные модули веб-пакетов и чанки для повышения скорости сборки. Кэширование будет автоматически включено по умолчанию в режиме просмотра, а веб-пакет установлен в режим разработки.

Документы Webpack | параметры кэша

Поскольку по умолчанию он включен только в режиме разработки и просмотра, каждая ваша команда должна быть новой сборкой. Вы можете отключить эту опцию cache, чтобы быть уверенным, или определенно цель production:

node_modules/.bin/webpack --output-path ~/target --mode=production

Я столкнулся с этим вопросом сразу после проверки новых изменений в веб-пакете 5, одним из которых было разрешить кэширование в локальный файл .

cache: объект удален: установка объекта в кэш-память невозможна

cache.type добавлено: теперь можно выбирать между "памятью" и "файловой системой"

Я так понимаю, это означает, что в настоящее время в веб-пакете 4 невозможно иметь кеш в файловой системе.


Редактировать : Вы не упомянули об этом в вопросе, но я только что увидел, что вы упомянули babel в обосновании награды.

Бабель

Если вы используете babel-loader, есть опция cacheDirectory, которая по умолчанию false. Однако, если включено, каталог по умолчанию находится в node_modules/.cache/babel-loader.

Вот фрагмент кода в документации, выделенный мной:

cacheDirectory: по умолчанию false. Если установлено, данный каталог будет использоваться для кэширования результатов загрузчика. Будущие сборки веб-пакетов будут пытаться читать из кэша, чтобы избежать необходимости запускать потенциально дорогостоящий процесс перекомпиляции Babel при каждом запуске . Если для параметров ({cacheDirectory: true}) установлено значение true, загрузчик будет использовать каталог кэша по умолчанию в node_modules/.cache/babel-loader или откат к каталогу временных файлов ОС по умолчанию, если в любом корневом каталоге не найдена папка node_modules.

опции загрузчика Babel

...