mirror of
https://github.com/jakejarvis/netlify-plugin-cache.git
synced 2025-04-26 02:55:22 -04:00
readme badges and emojis ftw
and added Jekyll instructions under examples
This commit is contained in:
parent
703b80244e
commit
59541f2041
35
README.md
35
README.md
@ -1,49 +1,48 @@
|
|||||||
# Netlify Plugin: Custom Cache
|
# ⚡ Netlify Plugin: Custom Cache [](https://www.npmjs.com/package/netlify-plugin-cache) 
|
||||||
|
|
||||||
[](https://www.npmjs.com/package/netlify-plugin-cache)
|
A generic cache plugin for saving and restoring files and/or folders between Netlify builds for impressive speed improvements. Worry less about running out of build minutes! ⏰
|
||||||
|
|
||||||
A generic cache plugin for saving and restoring files and/or folders between Netlify builds for impressive speed improvements. Worry less about running out of build minutes! ⚡
|
Essentially, this plugin is a pretty wrapper around [Netlify's native cache utility](https://github.com/netlify/build/blob/master/packages/cache-utils/README.md) — it isn't tied to any specific static site generator (on purpose).
|
||||||
|
|
||||||
In other words, this plugin is a pretty wrapper around [Netlify's native cache utility](https://github.com/netlify/build/blob/master/packages/cache-utils/README.md
|
## 💿 Install
|
||||||
) — it isn't tied to any specific static site generator (on purpose).
|
|
||||||
|
|
||||||
## Install
|
Add the following lines to your `netlify.toml`:
|
||||||
|
|
||||||
Add the following to your `netlify.toml` configuration:
|
|
||||||
|
|
||||||
```toml
|
```toml
|
||||||
[[plugins]]
|
[[plugins]]
|
||||||
package = "netlify-plugin-cache"
|
package = "netlify-plugin-cache"
|
||||||
[plugins.inputs]
|
[plugins.inputs]
|
||||||
|
# Optional (but highly recommended). Defaults to [".cache"].
|
||||||
paths = ["resources", "_vendor", "folder/file.md"]
|
paths = ["resources", "_vendor", "folder/file.md"]
|
||||||
```
|
```
|
||||||
|
|
||||||
This plugin only takes one input named `paths`, an array of files and/or directories relative to your project's root. These files/directories are restored before a build and saved in cache after a build **if it is successful**.
|
This plugin only takes one input named `paths`: an array of files and/or directories relative to your project's root. These files/directories are restored before a build and saved in cache after a build **if it is successful**.
|
||||||
|
|
||||||
**🚨 Important:** `paths` defaults to `[".cache"]`, but it's **highly recommended** you set this yourself based on the tools you're using. See examples below.
|
**🚨 Important:** `paths` defaults to `[".cache"]`, but it's **highly recommended** you set this yourself based on the tool(s) you're using to generate your site. See examples below.
|
||||||
|
|
||||||
Read more about plugin configuration at [the official Netlify Plugin docs](https://docs.netlify.com/configure-builds/build-plugins/#install-a-plugin).
|
Read more about plugin configuration at [the official Netlify Plugin docs](https://docs.netlify.com/configure-builds/build-plugins/#install-a-plugin).
|
||||||
|
|
||||||
## Usage examples
|
## 👩💻 Usage
|
||||||
|
|
||||||
- **Hugo:** Caching the `resources` directory can speed up your build greatly if you [process](https://gohugo.io/content-management/image-processing/) a lot of images via Hugo pipes. You can also cache the `public` directory to avoid completely rebuilding the entire site on each deploy. [More info here.](https://gohugo.io/getting-started/directory-structure/#directory-structure-explained)
|
- **Hugo:** Caching the `resources` directory can speed up your build greatly if you [process](https://gohugo.io/content-management/image-processing/) a lot of images, or compile SASS/SCSS via Hugo pipes. You can also cache the `public` directory to avoid completely rebuilding the entire site on each deploy. [More info here.](https://gohugo.io/getting-started/directory-structure/#directory-structure-explained)
|
||||||
- **Gatsby:** By default, the `.cache` directory holds persistent data between builds. You can also cache the `dist` directory to avoid completely rebuilding the entire site on each deploy. [More info here.](https://www.gatsbyjs.org/docs/build-caching/)
|
- **Gatsby:** By default, the `.cache` directory holds persistent data between builds. You can also cache the `dist` directory to avoid completely rebuilding the entire site on each deploy. [More info here.](https://www.gatsbyjs.org/docs/build-caching/)
|
||||||
|
- **Jekyll:** A caching API was added as of v4. The notoriously slow SSG can become (relatively) faster by caching the `.jekyll-cache` directory. [More info here.](https://jekyllrb.com/tutorials/cache-api/)
|
||||||
- **Next.js:** The `.next` directory holds the build output. [More info here.](https://nextjs.org/docs/api-reference/next.config.js/setting-a-custom-build-directory)
|
- **Next.js:** The `.next` directory holds the build output. [More info here.](https://nextjs.org/docs/api-reference/next.config.js/setting-a-custom-build-directory)
|
||||||
- **Anything else:** This is the reason I kept this plugin as generic as possible! Research the caching behavior of your static site generator (and how to customize it if necessary). Feel free to make a PR and add it here as another example, too!
|
- **Anything else:** This is the reason I kept this plugin as generic as possible! Research the caching behavior of your static site generator (and how to customize it if necessary). Feel free to open a PR and list it here as well!
|
||||||
|
|
||||||
## Debugging
|
## 🐛 Debugging
|
||||||
|
|
||||||
This plugin doesn't provide a way to output a list of files that were cached or restored, because Netlify already provides an official plugin named [`netlify-plugin-debug-cache`](https://github.com/netlify-labs/netlify-plugin-debug-cache) to do exactly that. No need to re-invent the wheel!
|
This plugin doesn't provide a way to output a list of files that were cached or restored, because Netlify already provides an official plugin named [`netlify-plugin-debug-cache`](https://github.com/netlify-labs/netlify-plugin-debug-cache) to do exactly that. No need to re-invent the wheel!
|
||||||
|
|
||||||
You can add their debug plugin **after** this plugin in your `netlify.toml`. (And yes, you need a `[[plugins]]` line for *each* plugin you add.)
|
You can add the debug plugin **after** this plugin in your `netlify.toml`. (And yes, you need a `[[plugins]]` line for _each_ plugin you add.)
|
||||||
|
|
||||||
```toml
|
```toml
|
||||||
[[plugins]]
|
[[plugins]]
|
||||||
package = "netlify-plugin-debug-cache"
|
package = "netlify-plugin-debug-cache"
|
||||||
```
|
```
|
||||||
|
|
||||||
The plugin will generate a file named `cache-output.json` at the root of your project's publish directory. [See an example file](https://gist.github.com/jakejarvis/dff606289e8b5d6be42d317e425bbee6#file-cache-output-json) or [learn more about this plugin](https://github.com/netlify-labs/netlify-plugin-debug-cache).
|
The debug plugin will generate a file named `cache-output.json` at the root of your project's publish directory. [See an example file](https://infallible-wing-581e78.netlify.app/cache-output.json) or [learn more about this plugin](https://github.com/netlify-labs/netlify-plugin-debug-cache).
|
||||||
|
|
||||||
## Licenses
|
## 📜 License
|
||||||
|
|
||||||
This project is distributed under the [MIT License](LICENSE).
|
This project is distributed under the [MIT license](LICENSE).
|
||||||
|
Loading…
x
Reference in New Issue
Block a user