Skip to content

Other Bundlers

Pre-Release

Verter is pre-release software. APIs may change between releases — see the API Stability document.

Verter supports all major JavaScript bundlers through @verter/unplugin. This page covers Rollup, esbuild, rspack, Rolldown, and Farm. For Vite and webpack, see their dedicated guides:

All bundler plugins accept the same configuration options.

Installation

Install @verter/unplugin in your project:

sh
pnpm add -D @verter/unplugin
sh
npm install -D @verter/unplugin
sh
yarn add -D @verter/unplugin

Rollup

js
// rollup.config.js
import VerterRollup from "@verter/unplugin/rollup";

export default {
  input: "src/main.js",
  plugins: [VerterRollup()],
  output: {
    dir: "dist",
    format: "es",
  },
};

You will likely also need @rollup/plugin-node-resolve and @rollup/plugin-replace for a working Vue build:

js
import { nodeResolve } from "@rollup/plugin-node-resolve";
import replace from "@rollup/plugin-replace";
import VerterRollup from "@verter/unplugin/rollup";

export default {
  input: "src/main.js",
  plugins: [
    replace({
      "process.env.NODE_ENV": JSON.stringify("production"),
      preventAssignment: true,
    }),
    nodeResolve(),
    VerterRollup(),
  ],
  output: {
    dir: "dist",
    format: "es",
  },
};

esbuild

js
// esbuild.config.js
import { build } from "esbuild";
import VerterEsbuild from "@verter/unplugin/esbuild";

await build({
  entryPoints: ["src/main.js"],
  bundle: true,
  outdir: "dist",
  plugins: [VerterEsbuild()],
});

rspack

js
// rspack.config.js
const VerterRspack = require("@verter/unplugin/rspack").default;

module.exports = {
  entry: "./src/main.js",
  plugins: [VerterRspack()],
};

rspack is API-compatible with webpack, so style loaders work the same way. See the webpack guide for CSS loader configuration.

Rolldown

js
// rolldown.config.js
import VerterRolldown from "@verter/unplugin/rolldown";

export default {
  input: "src/main.js",
  plugins: [VerterRolldown()],
  output: {
    dir: "dist",
    format: "es",
  },
};

Farm

js
// farm.config.js
import { defineConfig } from "@farmfe/core";
import VerterFarm from "@verter/unplugin/farm";

export default defineConfig({
  plugins: [VerterFarm()],
});

Options

All bundler plugins accept the same options. See the Vite configuration reference for the full list:

OptionTypeDefaultDescription
includestring | RegExp | (string | RegExp)[][/\.vue$/]File patterns to include
componentId(filename, source, isProd) => stringHash-basedCustom component ID generator
preCompilebooleanfalsePre-compile all .vue files at build start
crossFileOptimizebooleanfalseCross-file prop constness optimization (requires preCompile)
templateobject--Template compiler options

Released under the MIT License.