43 lines
1.1 KiB
JavaScript
43 lines
1.1 KiB
JavaScript
// @ts-nocheck
|
|
import { dirname, resolve } from 'path'
|
|
import { fileURLToPath } from 'url'
|
|
import { defineConfig } from 'vite'
|
|
import cssInjectedByJsPlugin from 'vite-plugin-css-injected-by-js'
|
|
|
|
const __dirname = dirname(fileURLToPath(import.meta.url))
|
|
|
|
/**
|
|
* CDN IIFE builds for page-agent
|
|
*
|
|
* Build targets (via --mode):
|
|
* - demo: page-agent.demo.js with auto-init and built-in API
|
|
* - full (default): page-agent.js exposes PageAgent class only
|
|
*/
|
|
export default defineConfig(({ mode }) => {
|
|
const isDemo = mode === 'demo'
|
|
const entry = isDemo ? resolve(__dirname, 'src/demo.js') : resolve(__dirname, 'src/full.js')
|
|
const fileName = isDemo ? 'page-agent.demo' : 'page-agent'
|
|
|
|
return {
|
|
plugins: [cssInjectedByJsPlugin({ relativeCSSInjection: true })],
|
|
publicDir: false,
|
|
esbuild: {
|
|
keepNames: true,
|
|
},
|
|
build: {
|
|
lib: {
|
|
entry,
|
|
name: 'PageAgent',
|
|
fileName: () => `${fileName}.js`,
|
|
formats: ['iife'],
|
|
},
|
|
outDir: resolve(__dirname, 'dist'),
|
|
emptyOutDir: !isDemo, // only empty on first build (full)
|
|
minify: false,
|
|
},
|
|
define: {
|
|
'process.env.NODE_ENV': '"production"',
|
|
},
|
|
}
|
|
})
|