3

I'm currently building a Chrome Extension with a vuejs powered frontend. This worked pretty great using vuecli. Up until the point at which the app started using the Webextension-API. Normal websites do not have access to this API; registered Extensions do.

So what's a good setup for developing a vuejs-Extension with the power of using vuecli (which supports webpack tooling)? What setup allows to test the application?

2 Answers 2

16

I recommend using vue-cli-plugin-browser-extension. Note that while the README indicates Vue CLI 3.x support, it also works with Vue CLI 4.x (tested with 4.3.1).

It supports several features that will save you a bunch of time, including live-reload, and bundling for Chrome and Firefox (and other browsers).

To install it in a Vue CLI project, just run: vue add browser-extension.

Sign up to request clarification or add additional context in comments.

Comments

1

After some contemplating, I came across the vue-cli-service-binary. This binary allows to watch a project and rebuild the app as required. By default, vuecli will output files to dist, which is the directory in which I placed manifest.json, contentScript.js and backgroundScript.js files. The following command will then rebuild the app as needed, allowing for almost hot-reloading (opening and closing the popup). Build times are reasonably quick for a small app (~200ms).

vue-cli-service build --watch --no-clean

Lastly, you might have to disable eslint on save (see this), as it throws errors about chrome not being found. Then I load the unpacked extension into a clean Chrome session and start testing it using the developer tools. Unfortunately, I have not yet gotten Vue Devtools working with the extension.

It works for me: I can develop vuejs-powered Chrome extensions in a reasonabale way. I am still wondering if anybody has any better workflows or ideas for improvement?

EDIT: @tony19's answer is the preferred way.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.