/parcel-plugin-web-extension

📦🚀 Parcel plugin for WebExtension projects

Primary LanguageJavaScriptApache License 2.0Apache-2.0

Build Status

parcel-plugin-web-extension

This parcel plugin enables you to use a WebExtension manifest.json as an entry point. For more information about manifest.json, please refer to the MDN docs.

Installation

Install via npm:

npm install --save-dev parcel-plugin-web-extension

or via yarn:

yarn add -D parcel-plugin-web-extension

Usage

Quick Start

After installing this plugin, use manifest.json as your entry point, like so:

parcel src/manifest.json

Your assets will now be resolved from the contents of your manifest file.

Assets resolved by this plugin:

  • background.scripts
  • background.page
  • content_scripts
  • browser_action.default_popup
  • browser_action.default_icon
  • page_action.default_popup
  • page_action.default_icon
  • icons
  • web_accessible_resources
  • chrome_url_overrides.bookmarks
  • chrome_url_overrides.newtab
  • chrome_url_overrides.history

Environments

This plugin will try to resolve and merge environment-specific manifest files in the format manifest.${NODE_ENV}.json. For example, in development, you can run:

NODE_ENV=development parcel src/manifest.json

and the plugin will also look for manifest.development.json and merge those keys into the base manifest.

Manifest prefix

Converts and removes keys with a prefix to the key without prefix. For example, you can run:

VENDOR=chrome parcel src/manifest.json

Input:
{
    "options_ui": {
        "firefox|browser_style": true,
        "chrome|chrome_style": true,
        "open_in_tab": false
    }
}

Result:
{
    "options_ui": {
        "chrome_style": true,
        "open_in_tab": false
    }
}

Licence

Apache 2.0