Package Exports
- vite-plugin-external
Readme
vite-plugin-external
Excludes specified module dependencies from runtime code and built bundles. Vite >= 3.1
Documentation
For detailed usage instructions and API references, please visit the official documentation:
Quick Start
Build iife format bundle
import { defineConfig } from 'vite';
import pluginExternal from 'vite-plugin-external';
export default defineConfig({
plugins: [
pluginExternal({
externals: {
jquery: '$',
vue: 'Vue',
react: 'React',
'react-dom/client': 'ReactDOM'
}
})
],
build: {
rollupOptions: {
output: {
format: 'iife',
},
},
}
});Dynamic set externals
import { defineConfig } from 'vite';
import react from '@vitejs/plugin-react';
import pluginExternal from 'vite-plugin-external';
export default defineConfig({
plugins: [
react({
jsxRuntime: 'classic',
}),
pluginExternal({
externals(libName) {
if (libName === 'react') {
return 'React';
}
if (libName === 'react-dom/client') {
return 'ReactDOM';
}
}
})
],
build: {
rollupOptions: {
output: {
format: 'iife',
},
},
}
});Build esm format bundle
import { defineConfig } from 'vite';
import react from '@vitejs/plugin-react';
import pluginExternal from 'vite-plugin-external';
export default defineConfig({
plugins: [
react({
jsxRuntime: 'classic',
}),
pluginExternal({
externals: {
react: 'https://esm.sh/react@18.3.1',
'react-dom/client': 'https://esm.sh/react-dom@18.3.1'
}
})
]
});Changelog
6.2.0
- Support links to external resources
6.1.0
- Reimplemented external plugin logic for Vite 6.x compatibility
- Added optional
rollbackparameter to revert to previous implementation - Added optional
logLevelparameter to control logging level (values: "TRACE" | "DEBUG" | "INFO" | "WARN" | "ERROR" | "FATAL" | "OFF") - Support to set
externalsas a function
6.0.0
- Added optional
externalGlobalsparameter to fix issue rollup#3188
- Added optional
4.3.1
externalizeDepsconfiguration supports regex patterns
4.3.0
- Previous
mode: falselogic replaced withinterop: 'auto' - Added
nodeBuiltinsandexternalizeDepsconfigurations for Node module bundling
- Previous
Q&A
- Q: Page cannot load after modifying
externals - A: The previous dependencies are cached by Vite, you need to manually delete the
./node_modules/.vite/depsfolder
Contributing
We welcome contributions from the community! If you find a bug or want to suggest an improvement, feel free to open an issue or submit a pull request.
How to Contribute
- Fork the repository.
- Create a new branch for your changes.
- Submit a pull request with a clear description of your changes.
License
This project is licensed under the MIT License.
