Skip to content

Reason to eject: I wanted better dev experience in my chrome extension #310

Closed
@kasperpeulen

Description

@kasperpeulen

So I heard you guys appreciated to hear reasons to eject. For me it was that I wanted a better dev experience in my chrome extension development.

So I make some chrome extension content script. First I used this project like this: I changed index.html to kind of mimic the final real webpage I make the content script for. I did most of the development in this index.html playground, and then when I needed to really test it on the actual web page, I would build it, and then load the build directory as chrome extension.

But now, I got a bit further in development, and I need to test as a real chrome extension all the time. So the setup from create-react-app, doesn't work anymore. It is actually not that trivial to get any css hot reloading working with a chrome extension, or even just automatic refresh of the page after a change.

I ejected and I found this project:
https://github.com/schovi/webpack-chrome-extension

I copied changes from that project to the ejected boilerplate. And it all works now how I want it:
https://github.com/kasperpeulen/chrome-extension-template

Basically the changes are,

  1. added a ManifestPlugin in config/webpack.config.dev.js (and the source of that plugin, as the project from @schovi doesn't seem to be on npm).
  2. loaded a overrideHotUpdater function, before the dev server starts in scripts/start.js. This function is also from @schovi and the source is included in the repo.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions