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
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: "",
|
|
},
|
|
],
|
|
}),
|
|
],
|
|
})
|
|
|