A simple Vite plugin for serving arbitrary static files that aren't in your public
directory.
// vite.config.ts
import path from "path";
import { defineConfig } from "vite";
import serveStatic from "vite-plugin-serve-static";
const serveStaticPlugin = serveStatic([
{
pattern: /^\/metadata\.json/,
resolve: "./metadata.json",
},
{
pattern: /^\/dog-photos\/.*/,
resolve: ([match]) => path.join("..", "dog-photos", match),
},
{
pattern: /^\/author-photos\/(.*)/,
resolve: (groups) => path.join("..", "authors", groups[1]) + ".jpg",
},
]);
export default defineConfig({
plugins: [serveStaticPlugin],
});
The configuration is defined as an array of objects defining which patterns to intercept and how to resolve them.
Each pattern
is defined as a regular expression. The resolve
property can either be a string containing the path to a single file or a function that returns a string given the result of executing the pattern
against the request path.
Licensed under the MIT License.