-
Notifications
You must be signed in to change notification settings - Fork 699
Closed as not planned
Labels
Description
Plugin Hooks
Fully Supported Hooks
-
options -
buildStart -
buildEnd -
renderStart -
renderError -
generateBundle -
writeBundle -
closeBundle -
banner -
footer -
intro -
outro -
augmentChunkHash -
closeWatcher -
watchChange -
renderChunk
Partually Supported Hooks
Hooks in this section can work as intended for most commonly seen plugins, but they may have some niche options / behavior that are not implemented yet.
Our priority at this stage is implement enough compatibility for most plugins to run, and determine whether to support the niche options at a later stage based on user demand. Some options are explicitly marked as "will not support" due to architectural incompatibility and limited use case.
outputOptions- the
PluginContextis not supported yet.
- the
resolveId- the 3rd argument
options.attributesis not supported yet - the following fileds in the return value are not supported yet:
attributesresolvedBysyntheticNamedExports
- the 3rd argument
load- the following fileds in the return value are not supported yet:
attributessyntheticNamedExportsastwill not support
- the following fileds in the return value are not supported yet:
transform- the following fileds in the return value are not supported yet:
attributessyntheticNamedExportsastwill not support
- the following fileds in the return value are not supported yet:
moduleParsed- the argument
moduleInfois only partially compatible
- the argument
resolveDynamicImport- the 3rd argument
options.attributesis not supported yet
- the 3rd argument
onLog- the
metaproperty is not supported yet
- the
Not Yet Supported
-
shouldTransformCachedModule -
resolveFileUrl -
resolveImportMeta -
renderDynamicImport
Plugin Context
Supported Properties
-
debug -
error -
info -
warn -
getFileName -
getModuleIds -
getModuleInfo -
addWatchFile -
getCombinedSourcemap -
parse
Partially Supported Properties
resolveoptions.isEntryandoptions.attributesare not supported yet
emitFile- only support emitting asset and chunk for now
load- only support call at
resolved(not resolving entry ids)/load/transformhooks
- only support call at
Not Yet Supported Properties
metacachegetWatchFilessetAssetSource
Vite Internal Plugins Compatibility
-
assetPlugin. -
assetImportMetaUrlPlugin -
clientInjectionsPlugin -
completeSystemWrapPlugin -
cssPlugin -
cssPostPlugin -
cssAnalysisPlugin -
dataURIPlugin -
definePlugin - *
dynamicImportVarsPlugin -
esbuildPlugin -
buildEsbuildPlugin -
htmlInlineProxyPlugin -
buildHtmlPlugin -
importAnalysisPlugin -
buildImportAnalysisPlugin -
importGlobPlugin- needsresolveId#optionthe argument filedsattributes -
jsonPlugin -
loadFallbackPlugin -
manifestPlugin -
metadataPlugin, needs mutate( add extra fileds)renderChunkArgs#RenderedChunkand using it ataugmentChunkHash/generateBundle, it rewrite to stored at js side. -
modulePreloadPolyfillPlugin -
optimizedDepsPlugin -
preAliasPlugin -
buildReporterPlugin -
resolvePlugin -
splitVendorChunkPlugin- needsmanualChunks. @deprecated -
terserPlugin -
wasmFallbackPlugin -
wasmHelperPlugin -
webWorkerPostPlugin- needsresolveImportMeta -
webWorkerPlugin- needsshouldTransformCachedModule -
workerImportMetaUrlPlugin- needsshouldTransformCachedModule -
ssrManifestPlugin
Vite Public Plugins Compatibility
-
@vitejs/plugin-vue -
@vitejs/plugin-vue-jsx -
@vitejs/plugin-react
Rollup Official Plugins Compatibility
Supported as Built-in
The following Rollup plugins are no longer needed because Rolldown offers built-in support for equivalent features:
@rollup/plugin-alias- useresolve.aliasoption instead.@rollup/plugin-commonjs- Rolldown has built-in support@rollup/plugin-inject- useinjectoption instead.@rollup/plugin-node-resolve- Rolldown has built-in support@rollup/plugin-json- Rolldown has built-in support@rollup/plugin-replace- Rolldown provides built-in support viaimport { replacePlugin } from 'rolldown/experimental'@rollup/plugin-swc,@rollup/plugin-babel,@rollup/plugin-sucrase- Rolldown has built-in TS / JSX transform support via Oxc. Target-lowering transforms are WIP.@rollup/plugin-dynamic-import-vars, Rolldown provides built-in support viaimport { dynamicImportVarsPlugin } from 'rolldown/experimental'.
Fully Compatible Plugins
-
@rollup/plugin-auto-install -
@rollup/plugin-beep -
@rollup/plugin-data-uri -
@rollup/plugin-dsv -
@rollup/plugin-eslint- consider usingoxlintinstead -
@rollup/plugin-esm-shim -
@rollup/plugin-graphql -
@rollup/plugin-legacy -
@rollup/plugin-run -
@rollup/plugin-terser- Rolldown has built-in minifcation viaoutput.minifyoption, but it's still WIP -
@rollup/plugin-virtual- -
@rollup/plugin-yaml -
@rollup/plugin-multi-entry -
@rollup/plugin-image -
@rollup/plugin-url -
@rollup/plugin-wasmwill likely have built-in support -
@rollup/plugin-html -
@rollup/plugin-buble -
@rollup/plugin-strip
Not Yet Compatible
-
@rollup/plugin-typescript- Rolldown will support emitting bundled dts withisolatedDeclarations: truein the future
Vite Ecosystem
analog
-
jitPlugin- needs find plugin by plugin name atbuildStartoptions, then using the plugintransform, see here
astro
-
astroScannerPlugin- needs usingPluginContext#getModuleInfoasTransformResult#meta, see here, (todo find usage) -
markdown- needsLoadResult#meta -
html- needs mutateNormalizedOption#pluginsatoptionshook, see here -
astroHeadBuildPlugin- needs mutateModuleInfo#metausingPluginContext#getModuleInfoat generateBundle hook, see here -
postprocessdirect usingacorn#parse -
vitePluginAnalyzerusingModuleInfo#metabyPluginContext#getModuleIds/getModuleInfoat generateBundle hook, see here -
vitePluginContentmutateNormalizedOption#inputatoptionshook, see here, mutateNormalizedOption#manualChunksat same file -
cssTODO -
import.meta.ROLLUP_FILE_URL_*
histoire
mutate NormalizedOption#external(look like is not correct), see here
qwik
qwikCityPlugin used moduleSideEffect: no-treeshake, see here
Reactions are currently unavailable