Skip to main content

Build the app for release

Preparation

Do these before building for release the extension

Change the extension version

Go to the public/manifest-common.json file. Replace the version value with the proper version of the extension

Replace the extension id

Go to the public/manifest-common.json file and find the browser_specific_settings attribute, replace all the id with a unique string. The string should be at most 60 character long.

Currently the ID is set to extensionname@example.org. Best approach is to combine the extension name with a unique email

The id can be normal string like this "id": "extensionname@example.org".

or it can be UUID like this "id": "{daf44bf7-a45e-4450-979c-91cf07434c3d}".

Notice that if you use a uuid it should be wrapped with curly braces {}.

If you don't want to release the extension for firefox for android, you may want to remove the gecko_android entry.

Run addons linter [optional]

Before building the code for final release, run a developer build and run a linter to verify that there is no error. If there is any error from the linter there is a good chance that firefox extension workshop and chrome webstore will decline the extension

For manifest v2

To run the linter at first build a dev version of manifest v2 by running this command

npm run webpack-dev-v2

When the build finishes, run the linter for manifest v2 by running this command

npm run lint-manifest-v2

If there is no errors, then you'll be fine. Currently the code only has 9 warnings because of the packages bootstrap and jquery package.

For manifest v3

To run the linter at first build a dev version of manifest v3 by running this command

npm run webpack-dev

When the build finishes, run the linter for manifest v3 by running this command

npm run lint-manifest-v3

If there is no errors, then you'll be fine. Currently the code only has 10 warnings because of the packages bootstrap and jquery package.

Build for release for manifest-v2 or firefox

First build the application with webpack production config using this command

npm run webpack-build-v2

Then package the build with web-ext using this command

npm run build

Now go to the dist/manifest-v2/web-ext-artifacts folder, there should be a zip file. You can upload this zip file to mozilla workshop to release your extension

Build for release for manifest-v3 for chrome and chromium

First build the application with webpack production configuration using this command

npm run webpack-build

The distributable code should be in the dist/manifest-v3.

To upload the extension you need to zip it. To zip the folder run this command

npm run zip-manifest-v3

Now go to the dist folder. There should be a zip manifest-v3-bundled.zip. You can upload this zip file to chrome extension market to release your extension