Опции Оптимизации 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
. Пример:
import { defineConfig } from 'vite'
// ---резать---
export default defineConfig({
optimizeDeps: {
include: ['esm-dep > cjs-dep'],
},
})
optimizeDeps.include
- Тип:
string[]
По умолчанию связанные пакеты, не находящиеся внутри node_modules
, не предварительно связаны. Используйте эту опцию, чтобы заставить связанный пакет предварительно связан.
Экспериментальный: если вы используете библиотеку со многими глубокими импортами, вы также можете указать сразу же сразу же, чтобы предварительно бьет все глубокие импорты. Это будет избегать постоянной предварительной сжигания всякий раз, когда используется новый глубокий импорт. Дайте обратную связь . Например:
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
также опущено, используйте вариант ViteoptimizeDeps.exclude
plugins
объединены с плагином DEP Vite
optimizeDeps.force
- Тип:
boolean
Установите true
, чтобы заставить предварительную сжигание зависимости, игнорируя ранее кэшированные оптимизированные зависимости.
optimizeDeps.holdUntilCrawlEnd
- Экспериментальный: дайте обратную связь
- Тип:
boolean
- По умолчанию:
true
При включении он будет содержать первые оптимизированные результаты DEPS, пока все статические импорты не будут заполнены при холодном старте. Это избегает необходимости полной перезагрузки при обнаружении новых зависимостей, и они запускают генерацию новых общих кусков. Если все зависимости обнаружены сканером плюс явно определенные в include
, лучше отключить эту опцию, чтобы позволить браузеру обрабатывать больше запросов параллельно.
optimizeDeps.disabled
- Устарел
- Экспериментальный: дайте обратную связь
- Тип: `Boolean | 'строить' | 'dev »
- По умолчанию:
'build'
Этот вариант устарел. По состоянию на 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
может ускорить холодный старт, избегая полной страницы перезагрузки. Вы получите предупреждение, если это имеет место для одной из ваших зависимостей, предлагая добавить имя пакета в этот массив в вашем конфигурации.