A code coverage tool is not set up for this repository yet to add a nice badge for the percent covered,
but rest knowing that this plugin is currently 100% unit tested. Go ahead and run
npm run test to see the
instanbul code coverage output.
We also test against the minimum supported node version of Gatsby up
to the latest version during each pull request to make sure the code will work for all supported NodeJS versions.
gatsby build and not during the dev build
If you do not write any state logic or event handlers then this should not effect you. This feature may be something this plugin wants to
tackle in the future.
How to install
⚠️ This plugin should be included last in your
gatsby-config.js as it relies on onPreRenderHTML
- ⚠️ Make sure you enter a string 'a-string' instead of JS regexp like
/a-string/, Gatsby has trouble handing off regular expressions to plugins. The string you pass in will be handled as a regular expression for you.
- An array of paths that are to be excluded from removing all the JS. The code runs a "contains" so this can be used to block a directory and all subdirectories, or to get as specific as you want.
When do I use this plugin?
Examples of usage
Upgrade Guide v1 -> v2
- Update the
excludeFilesin your gatsby-config file. The value passed in is exactly the same as it was before.
How to run tests
npm run test
How to develop locally
This project relies on typescript for all the type safety goodness which can be found in the
src directory. The compiled output goes
directly into the root of the project because Gatsby expects certain files
to be in the root.
- Get the latest updates
npm run watchto tell typescript to listen to changes in the
srcdirectory and recompile on the fly.
- Link this package to an actual gatsby project to test the plugin working, there is a good article for this here.
How to contribute
- Please open an issue first so that it can be determined that the feature / issue needs to be implemented / fixed.
- If it is determined that the feature / issue is something this plugin should address then feel free to fork the repo and make a pull request.
- This project makes use of conventional commits and your commits should follow
this standard. In order to make following this convention easy this project uses an NPM package called commitizen.
Now this isn't just an arbitrary spec that this package is forcing on you, as it turns out when you have standards around things you can
build automation on top of it very easily. In the case of these standardized commit messages when this package releases a new version it
auto generates a changelog / version bump based on the commit messages. In order to easily commit just run
npm run commitand you will guided through a series of questions which will auto format the commit message for you.
- Before making a pull request please make sure the tests are passing
npm run testand the linter is happy
npm run lint.