You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
42 lines
876 B
42 lines
876 B
import { imba } from 'vite-plugin-imba';
|
|
import { resolve } from 'path'
|
|
import { defineConfig } from 'vite';
|
|
import { name } from './package.json'
|
|
|
|
function proRouterViews() {
|
|
|
|
return {
|
|
name: 'pro-router-views',
|
|
transformIndexHtml(html) {
|
|
return html.replace('<head>', '<head><script>window.Views=[];</script>')
|
|
},
|
|
|
|
transform: {
|
|
order: 'pre',
|
|
handler(src, id) {
|
|
if (/\.imba$/.test(id)) {
|
|
let viewRegExp = /tag view-((\w|\S)+)( |\n)/g
|
|
let result = null
|
|
let views = ""
|
|
while(result = viewRegExp.exec(src)) {
|
|
if(result[1] != 'not_found')
|
|
views += "Views.push(\""+ result[1] +"\");"
|
|
}
|
|
return { code: views+src, map: null }
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
export default defineConfig({
|
|
plugins: [proRouterViews(), imba()],
|
|
build: {
|
|
lib: {
|
|
name: name,
|
|
fileName: "index",
|
|
entry: resolve(__dirname, 'src/main.imba'),
|
|
},
|
|
},
|
|
});
|
|
|