vite-plugin-externals
use to external resources, like webpack externals, but only use in browser now.
Can be used in production
mode without other rollup
configuration.
but it will not take effect by default in commonjs
, such as ssr
.
Usage
npm i vite-plugin-externals -D
Add it to vite.config.js
import { viteExternalsPlugin } from 'vite-plugin-externals'
export default {
plugins: [
viteExternalsPlugin({
vue: 'Vue',
react: 'React',
'react-dom': 'ReactDOM',
}),
]
}
How to work
transform source code of js file.
viteExternalsPlugin({
vue: 'Vue',
}),
import Vue from 'vue'
const Vue = window.Vue
import { reactive, ref as r } from 'vue'
const reactive = window.Vue.reactive
const r = window.Vue.ref
Warning: please use the plugin after converting to JS code, because the plugin only transform JS code. Eg.
import vue from '@vitejs/plugin-vue'
export default {
plugins: [
vue(),
viteExternalsPlugin({
vue: 'Vue',
}),
]
}
Configuration
filter
The files in node_modules
are filtered by default, and only transform js/ts/vue/jsx/tsx file.
You can specify the filter
function. Return true
will be transform to external.
viteExternalsPlugin({
vue: 'Vue',
}, {
filter(code, id, ssr) {
return false
}
}),
useWindow
set false
, the window
prefix will not be added.
viteExternalsPlugin({
vue: 'Vue',
}, { useWindow: false }),
import Vue from 'vue'
const Vue = Vue