Skip to content

Опции Оптимизации DEP

Если не указано, опции в этом разделе применяются только к оптимизатору зависимостей, который используется только в DEV.

optimizeDeps.entries

  • Тип: string | String []

По умолчанию VITE сканирует все ваши .html файлов, чтобы обнаружить зависимости, которые необходимо предварительно объединить (игнорируя node_modules , build.outDir , __tests__ и coverage ). Если build.rollupOptions.input указан, вместо этого Vite будет ползти эти точки входа.

Если ни один из них не соответствует вашим потребностям, вы можете указать пользовательские записи, используя эту опцию - значение должно быть шаблоном tinyglobby или массив шаблонов, которые являются относительными от root Project Project. Это будет перезаписать вывод записей по умолчанию. Только node_modules и build.outDir папки будут проигнорированы по умолчанию, когда optimizeDeps.entries четко определено. Если другие папки необходимо игнорировать, вы можете использовать шаблон игнорирования в рамках списка записей, отмеченной начальным ! . Если вы не хотите игнорировать node_modules и build.outDir , вы можете указать, используя буквальные пути строк (без tinyglobby шаблонов).

optimizeDeps.exclude

  • Тип: string[]

Зависимости исключить из предварительного сжигания.

CommonJS

Зависимости CommonJS не должны быть исключены из оптимизации. Если зависимость ESM исключена из оптимизации, но имеет вложенную зависимость CommonJS, зависимость CommonJS должна быть добавлена в optimizeDeps.include . Пример:

js
import { 
defineConfig
} from 'vite'
// ---резать--- export default
defineConfig
({
optimizeDeps
: {
include
: ['esm-dep > cjs-dep'],
}, })

optimizeDeps.include

  • Тип: string[]

По умолчанию связанные пакеты, не находящиеся внутри node_modules , не предварительно связаны. Используйте эту опцию, чтобы заставить связанный пакет предварительно связан.

Экспериментальный: если вы используете библиотеку со многими глубокими импортами, вы также можете указать сразу же сразу же, чтобы предварительно бьет все глубокие импорты. Это будет избегать постоянной предварительной сжигания всякий раз, когда используется новый глубокий импорт. Дайте обратную связь . Например:

js
import { 
defineConfig
} from 'vite'
// ---резать--- export default
defineConfig
({
optimizeDeps
: {
include
: ['my-lib/components/**/*.vue'],
}, })

optimizeDeps.esbuildOptions

  • Тип: Omit < EsbuildBuildOptions , | 'пучок' | 'purpoints' | 'внешний' | 'писать' | 'смотреть' | 'Outsir' | 'Outfile' | 'Outbase' | 'Outextension' | 'Metafile'>

Варианты перехода в Esbuild во время сканирования и оптимизации DEP.

Некоторые варианты опущены, поскольку изменение их не будет совместимы с оптимизацией DEP VITE.

  • external также опущено, используйте вариант Vite optimizeDeps.exclude
  • plugins объединены с плагином DEP Vite

optimizeDeps.force

  • Тип: boolean

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

optimizeDeps.holdUntilCrawlEnd

При включении он будет содержать первые оптимизированные результаты DEPS, пока все статические импорты не будут заполнены при холодном старте. Это избегает необходимости полной перезагрузки при обнаружении новых зависимостей, и они запускают генерацию новых общих кусков. Если все зависимости обнаружены сканером плюс явно определенные в include , лучше отключить эту опцию, чтобы позволить браузеру обрабатывать больше запросов параллельно.

optimizeDeps.disabled

Этот вариант устарел. По состоянию на Vite 5.1 предварительное сцепление зависимостей во время сборки была удалена. Установка от optimizeDeps.disabled до true или 'dev' отключает оптимизатор и настроен на false или 'build' оставляет оптимизатор во время включенного DEV.

Чтобы полностью отключить оптимизатор, используйте optimizeDeps.noDiscovery: true , чтобы запретить автоматическое обнаружение зависимостей и оставить optimizeDeps.include неопределенные или пустые.

WARNING

Оптимизация зависимостей во время сборки была экспериментальной особенностью. Проекты, пробующие эту стратегию, также удалили @rollup/plugin-commonjs , используя build.commonjsOptions: { include: [] } . Если вы это сделали, предупреждение поможет вам вновь поддерживать его для поддержки только пакетов CJS при объединении.

optimizeDeps.needsInterop

  • Экспериментальный
  • Тип: string[]

Силы ESM взаимодействуют при импорте этих зависимостей. VITE может правильно обнаружить, когда зависимость нуждается в взаимодействии, поэтому этот вариант обычно не требуется. Тем не менее, различные комбинации зависимостей могут привести к тому, что некоторые из них будут предварительно подготовлены по -разному. Добавление этих пакетов в needsInterop может ускорить холодный старт, избегая полной страницы перезагрузки. Вы получите предупреждение, если это имеет место для одной из ваших зависимостей, предлагая добавить имя пакета в этот массив в вашем конфигурации.

Released under the MIT License. (dev)