Note: This is a pretty alpha version of the plugin and it's very likely that I have to do larger changes.
Snowpack plugin to use web-ext for creating web extensions for Chrome and Firefox.
The plugin is pretty similar to the Parcel.js plugin - many thanks to the creator.
I'm not using Parcel as I had issues to setup CSS modules with Typescript. Then I've noticed that in latest Chrome or Firefox dynamic imports are directly supported and it should work with-out a bundler.
The plugin checks if there is a web-ext-config.js
and a manifest.json
in the root of the project.
If it's missing it will generate these files.
It also copies the manifest.json
to the build directory. So we can use the Snowpack build directory for web-ext to load the extension.
npm run build
: Build the templatenpm run deploy
: Publish the template to npmInstall it as dependency with npm install -D snowpack-plugin-web-ext
and add it to your snowpack.config.js
into the plugins with
/** @type {import("snowpack").SnowpackUserConfig } */
module.exports = {
/* other config */
plugins: [
/* other plugins */
"snowpack-plugin-web-ext"
]
}
We need to start the dev server with snowpack build --watch
instead of snowpack dev
as we have to generate the build directory for web-ext. Change the dev script in your package.json
to snowpack build --watch
You can find an example with the plugin in the following repo https://github.com/AWolf81/snowpack-chrome-preact-popup-demo.
MIT