Configure the Gatsby's output folder from ./public
to your target folder.
npm install --save gatsby-plugin-output
# or
yarn add gatsby-plugin-output
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. |
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.
-
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"
-
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 } }
npm run test
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.
This project is licensed under the terms of the MIT license.