Skip to content

divriots/vite-plugin-bundled-entry

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

vite-plugin-bundled-entry npm

Brought to you by
‹div›RIOTS ‹div›RIOTS

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. using importScripts)
  • 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

MIT

Copyright (c) 2021-present,

Riots

About

Vite plugin that generates a bundled entry file.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published