Get started writing a Gatsby plugin using the plugin starter

Kyle Gill
InstructorKyle Gill
Share this video with your friends

Social Share Links

Send Tweet
Published 4 years ago
Updated 3 years ago

Get setup to write a Gatsby plugin using the official plugin starter. Run the gatsby new command and connect the plugin to a site to test with.

The plugin starter includes a message that will be logged to the console of your site when it is hooked up correctly, helping you verify that your plugin is being loaded.

Additional resources:

Kyle Gill: [0:00] To develop a Gatsby plugin, you need a site to run it in. You can quickly generate a new site running gatsby new using the default name my-gatsby-project and choosing a starter. I chose the hello-world starter. You should see a new directory created, called my-gatsby-project, that contains the example site.

[0:14] Gatsby maintains a starter that can be used as an initial boilerplate for creating a new plugin. Copy the link to clone it from GitHub and run gatsby new again, this time passing in my-plugin as the first argument and the Git URL as the second argument. Another directory will be generated containing the plugin starter code.

[0:34] You need to include your plugin in the example site's config so it knows to run the plugin. Navigate to the gatsby-config file. If you don't have one already, add a plugins array and include an entry for your plugin with require.resolve and the path to your plugin. In my case, in the my-plugin folder.

[0:48] You could also link your plugin using npm link or yarn workspace, if you're familiar with them. Your plugin's code that implement Gatsby APIs, like in the gatsby-node file, will now be run when you start the site. This code in the onPreInit hook will log "Loaded gatsby-starter-plugin" to the console. Run the example site with gatsby develop. You should see the message in the log output.

[1:20] Now you're set up to add other Gatsby APIs.

egghead
egghead
~ 4 minutes ago

Member comments are a way for members to communicate, interact, and ask questions about a lesson.

The instructor or someone from the community might respond to your question Here are a few basic guidelines to commenting on egghead.io

Be on-Topic

Comments are for discussing a lesson. If you're having a general issue with the website functionality, please contact us at support@egghead.io.

Avoid meta-discussion

  • This was great!
  • This was horrible!
  • I didn't like this because it didn't match my skill level.
  • +1 It will likely be deleted as spam.

Code Problems?

Should be accompanied by code! Codesandbox or Stackblitz provide a way to share code and discuss it in context

Details and Context

Vague question? Vague answer. Any details and context you can provide will lure more interesting answers!

Markdown supported.
Become a member to join the discussionEnroll Today