vite-plugin-bundled-entry
v0.5.1
Published
<p> <a href="https://divRIOTS.com">Brought to you by<br/></a> <a href="https://divRIOTS.com#gh-light-mode-only" target="_blank"> <img width="150" height="40" src="https://divRIOTS.com/divriots.svg#gh-light-mode-only" alt="‹div›RIOTS" />
Downloads
3,455
Readme
vite-plugin-bundled-entry
Purpose
Vite goes to great length not to bundle anything (in dev), but there are cases where you've got no choice but to bundle. Some examples are:
- worker (web/shared/service) which need to run as IIFE and not
{type: 'module}
(e.g. usingimportScripts
) - JS entry point which needs to be available dynamically at runtime (e.g. in an iframe)
Installation
npm install --save-dev vite-plugin-bundled-entry
Usage
Add it to vite.config.js
import bundledEntryPlugin from 'vite-plugin-bundled-entry';
export default {
plugins: [bundledEntryPlugin({
id: 'some_virtual_id',
outFile: '/assets/mybundle.[hash].js',
entryPoint: 'src/path/to/entryfile.js',
esbuildOptions: {
// (optional) esbuild options to use for bundling
minify: process.env.NODE_ENV === 'production',
format: 'iife', // default "esm"
},
transform(code) {
// (optional) transform to apply on generated bundle
}
})]
}
In your code
import url from 'some_virtual_id?url';
// will be /assets/mybundle.[hash].js (with hash placeholder replaced in build mode)
function createWorker() {
return new Worker(url);
}
License
Copyright (c) 2021-present, Riots