Home

Awesome

<h1 align="center">🚀 web-extension-starter</h1> <p align="center">Web Extension starter to build "Write Once Run on Any Browser" extension</p> <div align="center"> <a href="https://travis-ci.com/abhijithvijayan/web-extension-starter"> <img src="https://travis-ci.com/abhijithvijayan/web-extension-starter.svg?branch=master" alt="Travis Build" /> </a> </a> <a href="https://david-dm.org/abhijithvijayan/web-extension-starter"> <img src="https://img.shields.io/david/abhijithvijayan/web-extension-starter.svg?colorB=orange" alt="DEPENDENCIES" /> </a> <a href="https://github.com/abhijithvijayan/web-extension-starter/blob/master/LICENSE"> <img src="https://img.shields.io/github/license/abhijithvijayan/web-extension-starter.svg" alt="LICENSE" /> </a> <a href="https://twitter.com/intent/tweet?text=Check%20out%20web-extension-starter%21%20by%20%40_abhijithv%0A%0AWeb%20Extension%20starter%20to%20build%20%22Write%20Once%20Run%20on%20Any%20Browser%22%20extension.%20https%3A%2F%2Fgithub.com%2Fabhijithvijayan%2Fweb-extension-starter%0A%0A%23javascript%20%23react%20%23typescript%20%23sass%20%23webextension%20%23chrome%20%23firefox%20%23opera"> <img src="https://img.shields.io/twitter/url/http/shields.io.svg?style=social" alt="TWEET" /> </a> </div> <h3 align="center">🙋‍♂️ Made by <a href="https://twitter.com/_abhijithv">@abhijithvijayan</a></h3> <p align="center"> Donate: <a href="https://www.paypal.me/iamabhijithvijayan" target='_blank'><i><b>PayPal</b></i></a>, <a href="https://www.patreon.com/abhijithvijayan" target='_blank'><i><b>Patreon</b></i></a> </p> <p align="center"> <a href='https://www.buymeacoffee.com/abhijithvijayan' target='_blank'> <img height='36' style='border:0px;height:36px;' src='https://bmc-cdn.nyc3.digitaloceanspaces.com/BMC-button-images/custom_images/orange_img.png' border='0' alt='Buy Me a Coffee' /> </a> </p> <hr />

❤️ it? ⭐️ it on GitHub or Tweet about it.

👶🏼 HTML + JavaScript = This branch

🧙‍♂️ React + TypeScript = Checkout react-typescript branch

😨 React + JavaScript = Checkout react-javascript branch

Features

Browser Support

ChromeFirefoxOperaEdgeYandexBravevivaldi
49 & later ✔52 & later ✔36 & later ✔79 & later ✔Latest ✔Latest ✔Latest ✔

Demo

Use this template

Create a new directory and run

curl -fsSL https://github.com/abhijithvijayan/web-extension-starter/archive/master.tar.gz | tar -xz --strip-components=1

🚀 Quick Start

Ensure you have

Then run the following:

Development

Production

Note: By default the manifest.json is set with version 0.0.0. The webpack loader will update the version in the build with that of the package.json version. In order to release a new version, update version in package.json and run script.

If you don't want to use package.json version, you can disable the option here.

Generating browser specific manifest.json

Update src/manifest.json file with browser vendor prefixed manifest keys

{
  "__chrome__name": "SuperChrome",
  "__firefox__name": "SuperFox",
  "__edge__name": "SuperEdge",
  "__opera__name": "SuperOpera"
}

if the vendor is chrome this compiles to:

{
  "name": "SuperChrome",
}

Add keys to multiple vendors by seperating them with | in the prefix

{
  __chrome|opera__name: "SuperBlink"
}

if the vendor is chrome or opera, this compiles to:

{
  "name": "SuperBlink"
}

See the original README of wext-manifest-loader package for more details

Bugs

Please file an issue here for bugs, missing documentation, or unexpected behavior.

Linting Config

License

MIT © Abhijith Vijayan