gatsby-transformer-remote-filesystem
A Gatsby transformer plugin for copying remote File
node content
to the /static/
folder and exposing the path via localURL
.
This is useful when you all your content is sourced through
a remote source (i.e. gatsby-source-contentful
, gatsby-source-wordpress
).
With this plugin, you no longer have to install gatsby-source-filesystem
if all of your data is remote. Bye-bye unneccesary dependencies and gatsby-node
logic!
See https://github.com/gatsbyjs/gatsby/issues/4993 for a discussion of this issue.
This plugin also includes extra options for fingerprinting the parent directory instead of the file name, as well as a mime-type filter.
Install
npm install --save gatsby-transformer-remote-filesystem
How to use
// In your gatsby-config.jsmoduleexports = plugins: // By default, this mimics the behavior of gatsby-source-filesystem // with the exception of exposing the path via `localURL` instead of // `publicURL`. `gatsby-plugin-remote-filesystem`
Options
// In your gatsby-config.jsmoduleexports = plugins: resolve: `gatsby-transformer-remote-filesystem` options: // If true, fingerprint the directory instead of the filename // (as `gatsby-transformer-sharp` does). // For example, /static/my_file-1234asdf.pdf will become // /static/1324asdf/my_file.pdf. // Consider the SEO implications if your site is already published. fingerprintDirectory : true // If included, only copies `File`s where `internal.mediaType` matches. // If option is not included, will copy all `File`s. // If you only need images, consider using `gatsy-transformer-sharp` // instead of this plugin. mediaTypes: 'application/pdf'
How to query
You can query file nodes like the following:
{ allFile { edges { node { localURL } } }}
Contributing
This plugin only implements a single gatsby-node
function so its pretty
easy to grok. Feel free to send a PR!
The logic is from gatsby-source-filesystem, I just added some options.