Giter VIP home page Giter VIP logo

extension.js's Introduction

Extension.js npm fossa workflow downloads PR's welcome

Plug-and-play, zero-config, cross-browser extension development tool.

Screenshot 2024-03-25 at 13 06 15

Logo

Create cross-browser extensions with no build configuration.

Extension.js is a plug-and-play, zero-config, cross-browser extension development tool with built-in support for TypeScript, WebAssembly, React, and modern JavaScript.

Create A New Extension

npx extension create my-extension
cd my-extension
npm run dev

A new browser instance will open up with your extension ready for development.

You are done. Time to hack on your extension!

create-a-new-extension.mp4

Get Started Immediately

Kickstart Any Sample from Chrome Extension Samples

Dive right into development by starting with a sample from the Chrome Extension Samples repository. It's a great way to get acquainted with best practices and save time:

  1. Open your terminal.
  2. Navigate to the directory where you want your project.
  3. Run the command:
    npx extension dev <sample-name>
    Replace <sample-name> with the name of the sample you wish to use from Chrome Extension Samples.

See the example below where we request the sample page-redder from Google Chrome Extension Samples.

npx extension dev https://github.com/GoogleChrome/chrome-extensions-samples/tree/main/functional-samples/sample.page-redder --browser=edge
chrome-extension-sample-page-redder-on-edge.mp4

Use Microsoft Edge to kickstart any sample from chrome-extesions-sample

Extension.js supports a variety of browsers, including Microsoft Edge. To start an Edge-compatible extension, simply:

  1. Open your terminal.
  2. Navigate to your desired project directory.
  3. Execute:
    npx extension dev  <sample-name> --browser=edge
    Tailor your command by replacing <sample-name> with the specific sample you're interested in.

See the example below where we request the sample magic8ball from from Google Chrome Extension Samples using Edge as the runtime browser.

npx extension dev https://github.com/GoogleChrome/chrome-extensions-samples/tree/main/api-samples/topSites/magic8ball --browser=edge
chrome-extension-sample-magic8ball-on-edge.mp4

Run Mozilla Add-Ons Using Edge

Bridge the gap between Firefox and Edge by running Mozilla Add-Ons using Edge:

  1. Navigate to your project directory.
  2. Use the command:
    npx extension dev <addon-name> --browser=edge --polyfill=true
    This will fetch a Mozilla Add-On and adapt it for Edge.

See the example below where we request the sample Apply CSS from MDN WebExtensions Examples using Edge as the runtime browser.

npx extension dev https://github.com/mdn/webextensions-examples/tree/main/apply-css --browser=edge --polyfill=true
mdn-webextensions-examples-apply-css-on-edge.mp4

I have An Extension

usage-with-an-existing-extension.mp4

If you have an existing extension which is using a package manager, you can install the Extension.js package and manually create the scripts used to run your extension. See the demo above or follow these instructions to get it done:

Step 1 - Install extension as a devDependency

npm install extension --save-dev

Step 2 - Link your npm scripts with the executable Extension.js commands

{
  "scripts": {
    "build": "extension build",
    "dev": "extension dev",
    "start": "extension start"
  },
  "devDependencies": {
    // ...other deps,s
    "extension": "latest"
  }
}

Done. You are all set!

  • To develop the extension, run npm run dev.
  • To visualize the extension in production mode, run npm run start.
  • To build the extension in production mode, run npm run build.

Using a specific browser for development

Desktop Browsers

โ˜‘๏ธ = Likely works but no browser runner support yet.

Brave Browser Google Chrome Microsoft Edge Mozilla Firefox Opera Browser Apple Safari Vivaldi Browser
โ˜‘๏ธ โœ… โœ… โ›”๏ธ โ˜‘๏ธ โ›”๏ธ โ˜‘๏ธ

Mobile Browsers

Firefox For Android Safari On iOS
โ›”๏ธ โ›”๏ธ

If you want to target a specific browser, just pass the --browser flag to the dev/start command (based on the list available above), like npx extension dev path/to/extension --browser=edge.

Hint Pass --browser="all" to load all available browsers at once.

extension dev --browser=all
Screenshot 2024-03-25 at 13 06 15

License

MIT (c) Cezar Augusto.

extension.js's People

Contributors

cezaraugusto avatar joshcartme avatar rahulcs avatar redfeet avatar fossabot avatar ibes avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.