Note: this plugin only works with Vue@^2.7.x.
Based on esbuild-plugin-vue-next
// build.js
const { build } = require('esbuild')
const vuePlugin = require('esbuild-plugin-vue-naruto')
build({
entryPoints: ['index.ts'],
bundle: true,
outdir: 'dist',
plugins: [vuePlugin()],
}).catch(() => process.exit(1));
export interface Options {
extractCss?: boolean
isProduction?: boolean
// options to pass on to vue/compiler-sfc
script?: Partial<Pick<SFCScriptCompileOptions, 'babelParserPlugins'>>
template?: Partial<
Pick<
SFCTemplateCompileOptions,
| 'compiler'
| 'compilerOptions'
| 'preprocessOptions'
| 'transpileOptions'
| 'transformAssetUrls'
| 'transformAssetUrlsOptions'
>
>
style?: Partial<
Pick<
SFCStyleCompileOptions,
| 'preprocessLang'
| 'preprocessOptions'
| 'postcssOptions'
| 'postcssPlugins'
| 'trim'
>
>
}
const { build } = require('esbuild')
const vuePlugin = require('esbuild-plugin-vue-naruto')
build({
entryPoints: ['index.ts'],
bundle: true,
outdir: 'dist',
plugins: [vuePlugin({
template: {
compilerOptions: {
// ...
},
transformAssetUrls: {
// ...
}
}
})],
}).catch(() => process.exit(1));