esbuild plugin for resolving and loading Vue.js 3 SFCs. This plugin is meant to mimick the default Vue CLI behaviour, for example it supports path aliases defined in the tsconfig.json file.
npm i -D esbuild-plugin-vue3
<template>
<script>
and <script setup>
(the latter is still experimental)<style>
import "@/Component.vue"
resolves to import "../../Component.vue
Simple usage, this will resolve all .vue
imports and load its parts independently. By default path aliases will be loaded from the tsconfig.json file, if any.
const esbuild = require("esbuild")
const vuePlugin = require("esbuild-plugin-vue3")
esbuild.build({
entryPoints: ["src/app.ts"],
bundle: true,
outfile: "dist/app.js",
plugins: [vuePlugin()]
})
More advanced usage, generating HTML file:
const esbuild = require("esbuild")
const vuePlugin = require("esbuild-plugin-vue3")
esbuild.build({
entryPoints: ["src/app.ts"],
bundle: true,
outfile: "dist/app.js",
entryNames: '[dir]/[name]-[hash]',
metafile: true,
plugins: [vuePlugin({
generateHTML: "src/index.html"
// Or:
generateHTML: {
sourceFile: "src/index.html",
pathPrefix: "assets/",
preload: [{ href: "https://example.com/my-external.css", as: "stylesheet" }]
}
})]
})