Skip to content

thundermiracle/gatsby-plugin-output

Repository files navigation

gatsby-plugin-output

npm version dependencies Status CircleCI

Description

Configure the Gatsby's output folder from ./public to your target folder.

How to install

npm install --save gatsby-plugin-output
# or
yarn add gatsby-plugin-output

Available options

No. Option required Default Description
1 publicPath public the output folder of Gatsby, will always be public in Gatsby@v2
2 moveFolder false move public folder instead of copy.
・ gatsby develop may not working well after moving public folder. Better keep this flag false.
・ You should clean gatsby cache by gatsby clean before build if this flag is true
3 rmPublicFolder false remove public folder before build.
・ Better use gatsby clean to remove the folder. if necessary.

When do I use this plugin?

As discussed in ticket #1878, configurable output folder function will not be implemented in Gatsby@v2.

But sometimes changing output dir is necessary like build Gatsby with pathPrefix and deploy it to Netlify's subdirectory. This plugin is trying to move the compiled files from ./public to your target folder.

IMPORTANT: In common cases, you'd better put this plugin in the end of the gatsby-config.js as other plugins like gatsby-plugin-offline is hard-coding public folder.

Examples of usage

  1. Clean the cache and Define the output dir by environment parameter.

    "build": "OUTPUT_DIR=public/blog gatsby build"
    
    # in Windows:
    
    "build": "cross-env OUTPUT_DIR=public/blog gatsby build"
  2. In gatsby-config.js plugins array:

    `gatsby-plugin-output`;

    Or with options (See options detail):

    {
      resolve: `gatsby-plugin-output`,
      options: {
        // default values
        publicPath: 'public',
        rmPublicFolder: false
      }
    }

How to run tests

npm run test

How to develop locally

How to contribute

If you have unanswered questions, would like help with enhancing or debugging the plugin, it is nice to include instructions for people who want to contribute to your plugin.

License

This project is licensed under the terms of the MIT license.