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.
 

83 lines
2.3 KiB

import { dirname, resolve } from "node:path"
import { fileURLToPath } from "node:url"
import module from "node:module"
import { defineConfig } from "vite"
import pkg from "./package.json"
import { viteStaticCopy } from "vite-plugin-static-copy"
const __dirname = dirname(fileURLToPath(import.meta.url))
function getExternal(): string[] {
return [...Object.keys(pkg.dependencies || {}), ...module.builtinModules]
}
export default defineConfig({
publicDir: false,
resolve: {
alias: {
"@": resolve(__dirname, "src"),
db: resolve(__dirname, "src/db"),
config: resolve(__dirname, "src/config"),
utils: resolve(__dirname, "src/utils"),
services: resolve(__dirname, "src/services"),
},
},
build: {
lib: {
entry: resolve(__dirname, "src/main.js"),
formats: ["es"],
fileName: () => `[name].js`,
},
outDir: resolve(__dirname, "dist"),
rollupOptions: {
external: getExternal(),
// watch: {
// include: "src/**",
// exclude: "node_modules/**",
// },
output: {
preserveModules: true,
preserveModulesRoot: "src",
inlineDynamicImports: false,
},
},
},
plugins: [
viteStaticCopy({
targets: [
{
src: "public",
dest: "",
},
{
src: "src/views",
dest: "",
},
{
src: "src/db/migrations",
dest: "db",
},
{
src: "src/db/seeds",
dest: "db",
},
{
src: "entrypoint.sh",
dest: "",
},
{
src: "package.json",
dest: "",
},
{
src: "knexfile.mjs",
dest: "",
},
{
src: "bun.lockb",
dest: "",
},
],
}),
],
})