const resolvePlugin = { name: "resolvePlugin", setup(build) { let path = require("path") // url in css does not resolve via esbuild-svelte correctly build.onResolve({ filter: /.*/, namespace: "fakecss" }, (args) => { // console.log(args) if (args.path.match(/^\./)) return { path: path.dirname(args.importer) + "/" + args.path } // return { path: path.join(args.resolveDir, "public", args.path) } }) }, } ////////////////////////// esbuild-svelte const sveltePlugin = require("./esbuild-svelte.plugin") const distDir = "dist" console.log("copy public dir...") const copydir = require("copy-dir") copydir.sync(__dirname + "/public", __dirname + "/" + distDir) /*copydir.sync( __dirname + "/public/index.html", __dirname + "/" + distDir + "/template.html" )*/ const svelteConfig = require("./svelte.config") const esbuildSvelte = sveltePlugin({ compileOptions: { css: false, hydratable: true, dev: (process.argv?.length > 2 ? process.argv[2] : "build") !== "build", }, preprocess: svelteConfig.preprocess, cache: true, }) const options = { logLevel: "info", color: true, entryPoints: ["./src/index.ts"], outfile: "./" + distDir + "/_dist_/index.mjs", metafile: true, //"./" + distDir + "/_dist_/meta.json", format: "esm", minify: true, bundle: true, splitting: false, plugins: [esbuildSvelte, resolvePlugin], loader: { ".woff2": "file", ".woff": "file", ".eot": "file", ".svg": "file", ".ttf": "file", }, sourcemap: true, target: ["es2020", "chrome61", "firefox60", "safari11", "edge18"], } module.exports = { sveltePlugin: sveltePlugin, resolvePlugin: resolvePlugin, options: options, watch: { path: [__dirname + "/src/**/*"], }, serve: { onRequest(args) { console.log(args) }, }, }