km-web-plugin
Version:
ICE Web Plugin Initializer
76 lines (74 loc) • 1.91 kB
text/typescript
import { fileURLToPath, URL } from "node:url";
import { resolve } from "path";
import { defineConfig } from "vite";
import vue from "@vitejs/plugin-vue";
import vueDevTools from "vite-plugin-vue-devtools";
import mkcert from "vite-plugin-mkcert";
import cssInjectedByJsPlugin from "vite-plugin-css-injected-by-js";
import Components from 'unplugin-vue-components/vite';
import { PrimeVueResolver } from '@primevue/auto-import-resolver';
import { copyFileSync } from "fs";
// https://vite.dev/config/
export default defineConfig({
server: {
port: 3001,
cors: true,
},
plugins: [
vue(),
vueDevTools(),
mkcert(),
cssInjectedByJsPlugin(),
Components({
resolvers: [PrimeVueResolver()]
}),
{
name: "copy-em-ssf-guest",
buildStart() {
try {
copyFileSync(
"node_modules/@elliemae/em-ssf-guest/dist/elli.ssf.guest.js",
"public/elli.ssf.guest.js",
);
} catch (error) {
console.warn("Could not copy em-ssf-guest file:", error);
}
},
},
],
resolve: {
alias: {
"@": fileURLToPath(new URL("./src", import.meta.url)),
},
},
define: {
"process.env": {},
},
build: {
target: "esnext",
outDir: "dist/globaltool",
lib: {
formats: ["es"],
entry: resolve(__dirname, "src/lib/GlobalTool/index.ts"),
name: "globaltool",
fileName: (format) => `globaltool.js`,
},
cssCodeSplit: false,
rollupOptions: {
output: {
format: "es",
inlineDynamicImports: true,
manualChunks: undefined,
entryFileNames: "globaltool.js",
chunkFileNames: "[name].js",
assetFileNames: (assetInfo) => {
if (assetInfo.name === "style.css") {
return "styles.css";
}
return "[name][extname]";
},
},
},
minify: true,
},
});