Excludes specified module dependencies from runtime code and built bundles.
npm install vite-plugin-external



> Excludes specified module dependencies from runtime code and built bundles.
> Vite >= 3.1
For detailed usage instructions and API references, please visit the official documentation:
Build iife format bundle
``js
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
`js
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
`js
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'
}
})
]
});
`
* 6.2.0
* Support links to external resources
* 6.1.0
* Reimplemented external plugin logic for Vite 6.x compatibility
* Added optional rollback parameter to revert to previous implementationlogLevel
* Added optional parameter to control logging level (values: "TRACE" | "DEBUG" | "INFO" | "WARN" | "ERROR" | "FATAL" | "OFF")externals
* Support to set as a function
* 6.0.0
* Added optional externalGlobals parameter to fix issue rollup#3188
* 4.3.1
* externalizeDeps configuration supports regex patterns
* 4.3.0
* Previous mode: false logic replaced with interop: 'auto'nodeBuiltins
* Added and externalizeDeps configurations for Node module bundling
* Q: Page cannot load after modifying externals./node_modules/.vite/deps` folder
* A: The previous dependencies are cached by Vite, you need to manually delete the
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.
This project is licensed under the MIT License.