vue-mod-page/vite.config.ts

48 lines
1.2 KiB
TypeScript

import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
import vueJsx from '@vitejs/plugin-vue-jsx'
import vue2 from '@vitejs/plugin-vue2'
import vue2Jsx from '@vitejs/plugin-vue2-jsx'
import { isVue2, isVue3, version } from 'vue-demi'
import dts from 'vite-plugin-dts'
import path from 'node:path'
import { createRequire } from 'node:module'
const resolve = (str: string) => {
return path.resolve(__dirname, str)
}
console.log('vue', version)
function getV2Compiler() {
const req = createRequire(import.meta.url);
const rt = req.resolve("./node_modules/vue2/compiler-sfc");
console.log(rt);
const c = req(rt)
console.log(c);
return c;
}
// https://vite.dev/config/
export default defineConfig({
plugins: isVue3 ?
[vue(), vueJsx()] :
[vue2({ compiler: getV2Compiler() }), vue2Jsx(), dts({ rollupTypes: true, tsconfigPath: './tsconfig.json', insertTypesEntry: true })],
resolve: {
alias: {
vue: isVue2 ? resolve('./node_modules/vue2') : resolve('./node_modules/vue'),
}
},
optimizeDeps: {
exclude: ['vue-demi']
},
build: {
lib: {
entry: resolve('src/index.ts'),
name: 'vue-modpage',
fileName: (format) => `material-editor.${format}.js`,
formats: ['es', 'cjs']
}
}
})