Exporters
Frugal can build and serve pages. But depending on your deployment platform, you might want specific "deployable". Exporters are adapters that produce deployable packages.
Nginx
Export your project as a static website to be served with NGINX. In the future, this exporter will also generate an NGINX config file.
Configuration
To use this exporter, add it to your config file :
import { NginxExporter } from "https://deno.land/x/frugal@0.9.6/mod.ts";
export default {
...
exporter: new NginxExporter()
...
}
1234567
Export result
You'll get /public
file ready to be served with NGINX with all static HTML files generated inside.
Deno
Export your project to be run on Deno or deployed on [Deno Deploy][https://deno.com/deploy].
Configuration
You first have to choose a cache provider for static pages :
DenoKVCache
that will store static pages in Deno KV (still in beta on Deno Deploy)UpstashCache
that will store static pages in Upstash
Then, you'll have to add the Exporter to your config file :
import { DenoExporter, UpstashCache } from "https://deno.land/x/frugal@0.9.6/mod.ts";
export default {
...
exporter: new DenoExporter(
new UpstashCache(Deno.env.get("UPSTASH_URL"), Deno.env.get("UPSTASH_TOKEN")),
)
...
}
123456789
Export result
You'll get a directory deno/
in your outdir
with a file entrypoint.mjs
. This is the file that you should run to start the server.
In this directory, there is also a directory buildcache/
containing the initial content of the build cache and a script populate.mjs
that will populate the static page cache with the content of buildcache
.
On the first execution of entrypoint.mjs
the populate.mjs
script will be called before starting the server. The first boot time might be longer than the subsequent boot time.
This will happen only once unless you clear the static page cache's underlying data source (the Deno KV or Upstash Redis database).