chrome-extension-tools

Bundling Chrome Extensions can be pretty complex. It doesn't have to be.

Downloads
150.4K
Stars
2.3K

Bot releases are hidden (Show)

chrome-extension-tools - Supporting Windows better

Published by jacksteamdev over 3 years ago

Thanks to @onikienko for helping us debug this!

  • fix manifest file paths for windows f6b4491

https://github.com/extend-chrome/rollup-plugin-chrome-extension/compare/v3.5.5...v3.5.6

chrome-extension-tools - Fixing sourcemaps

Published by jacksteamdev over 3 years ago

Thanks to @mnoorenberghe for the PR fixing sourcemaps!

This release also adds some better documentation and cleans up the codebase a little.

  • chore: clean up npm scripts 34ef893
  • tests: clean up test folders cc5ca7e
  • tests: use normal react packages a5a21e8
  • Update README.md 34b3c8e
  • Update Readme.MD 57063b6
  • Update API.MD 900b2dc
  • Pass output.sourcemap option through to (re)generateBundle. Fixes #69 a109e65

https://github.com/extend-chrome/rollup-plugin-chrome-extension/compare/v3.5.4...v3.5.5

chrome-extension-tools - Supporting JSX and TSX as content scripts

Published by jacksteamdev over 3 years ago

This release adds support for content scripts in the manifest that end in .jsx or .tsx.

The "basic" test has also been renamed to "kitchen-sink", and new "basic-js" and "basic-ts" tests have been added to make it easier for contributors to make a PR.

Thanks to @ZakaryCode and @joegilley for their PRs pointing out the need for this feature!

  • docs: tweak sh code blocks da0e502
  • chore: sort package json 53b80dd
  • tests: config jest to use better test runner 7bcd8c4
  • chore: fix eslint config for extension fixtures 1cce902
  • tests: add tests for react tsx content scripts 8bbbd85
  • tests: add tests for react js content scripts 6ae10dd
  • feat: support jsx/tsx as content script entries 3f4cd67
  • tests: add basic ts test 8d48d15
  • tests: add basic js test 4f65b8e
  • tests: rename basic test to kitchen-sink 89738be
  • Update README.md (#59) f443253

https://github.com/extend-chrome/rollup-plugin-chrome-extension/compare/v3.5.3...v3.5.4

chrome-extension-tools - Minding our own business

Published by jacksteamdev over 3 years ago

Fixes a bug where rollup-plugin-chrome-extension would throw an error during the generateBundle hook if there were unresolved dependencies. Now Rollup will show the external dependencies message instead.

  • chore: rebuild lockfile 4fa0d94
  • tests(crx) simplify test build utility a22cea0
  • fix(crx) delegate external deps report to rollup aa05d93
  • [docs] remove badge styles and most logos 8dc6b04
  • [docs] tweak badge styles af90df4
  • Add Svelte boilerplate 284720b

https://github.com/extend-chrome/rollup-plugin-chrome-extension/compare/v3.5.2...v3.5.3

chrome-extension-tools - Naming chunks correctly

Published by jacksteamdev almost 4 years ago

The last release broke chunk file names and paths for non-entry modules, removing subfolders and adding double hashes to output files. The manifest retained the expected file names, but the files were named incorrectly.

This release fixes that problem. We've added some tests to make sure that the file names in the manifest always match the output file names.

  • [fix] output correctly named chunks (#61) 9013af7
  • Update README.md c3221f1

https://github.com/extend-chrome/rollup-plugin-chrome-extension/compare/v3.5.1...v3.5.2

chrome-extension-tools - Adding browserPolyfill

Published by jacksteamdev almost 4 years ago

This release has been a long time coming. It adds the option browserPolyfill, which adds webextension-polyfill to your Chrome extension. It also includes some improvements to the simpleReloader and lays some groundwork for Firefox compatible builds.

  • tests: fix tests for release f2bb283
  • chore: update lock file cb548c7
  • fix: enable option that is apparently needed f390a33
  • fix: ignore mysterious ts error d5f2824
  • fix: update files to fix build 28299b2

https://github.com/extend-chrome/rollup-plugin-chrome-extension/compare/v3.5.0...v3.5.1

chrome-extension-tools - Supporting options_ui

Published by jacksteamdev about 4 years ago

Thanks to @jones-sam for adding this feature and updating our Cheerio types!

  • Upgrade and pin @types/cheerio 03b7638
  • Add options_ui support (#54) c32a669
  • Lock @types/cheerio to 0.22.16 d0b4fdc

https://github.com/extend-chrome/rollup-plugin-chrome-extension/compare/v3.3.0...v3.4.0

chrome-extension-tools - Sending message responses

Published by jacksteamdev about 4 years ago

This release adds support to send a response to messages in the background page event wrapper. More info about this in #50

  • Support async messages in the background page (#50) 5364b38
  • unused import 7e01bb4

https://github.com/extend-chrome/rollup-plugin-chrome-extension/compare/v3.2.0...v3.3.0

chrome-extension-tools - Supporting more input types and the WebRequest API

Published by jacksteamdev over 4 years ago

This release adds support for options.input as an array and object, as well as fixes a bug in the background page import wrapper that was blocking use of the WebRequest API.

For now the new input type support is undocumented.

Thanks to @RoCat for the work on the WebRequest API!

  • Fix paths for CI tests f72a0d3
  • Support options.input as string, array or object 32a9c21
  • fix WebRequestEvent events capture to avoid crashing because No matching signature c09422e
  • Remove peer dependencies (#43) b26b98f

https://github.com/extend-chrome/rollup-plugin-chrome-extension/compare/v3.1.0...v3.2.0

chrome-extension-tools - Better dynamic import wrappers

Published by jacksteamdev over 4 years ago

This release adds two new dynamic import wrappers and refactors the old one.

Motivation

These wrappers are necessary because Rollup only supports ES6 modules when output.dir is used, which is necessary for this plugin to work the way that it does. Code splitting is also non-optional with output.dir. This means that we need all script environments to support ES6 modules.

However, in Chrome, background and content scripts do not support ES6 modules! They do support the dynamic import function, which allows us to async load modules into a script.

This introduces another complexity with non-persistent background pages. Events that wake the background page are fired at the end of first event loop, before the dynamic import completes. These import wrappers capture wake events and dispatch them after the dynamic import resolves.

Content Scripts

Content scripts now have their own import wrapper. It simply uses dynamic import to load the content script module and does nothing with events, since content scripts are always persistent.

Background Scripts

The new default import wrapper is the implicit import wrapper. It walks the chrome object and wraps any events that it finds. If your extension uses many permissions, the chrome object will have more namespaces, and it may take slightly more time (~15ms) to load the background page. Consider the following if 15ms is too much for you.

The old import wrapper is now the explicit import wrapper, and uses the same API as before. It is quite fast (~5ms), but wake events that are not defined in dynamicImportWrapper.wakeEvents will be lost. Symptoms of this would be things like having to click the browser action twice to register browserAction.onClicked, or missed events from alarms.onAlarm.

Pull Requests

  • Update dynamic import wrappers 4b80336

https://github.com/extend-chrome/rollup-plugin-chrome-extension/compare/v3.0.1...v3.1.0

chrome-extension-tools - RIP Push Reloader

Published by jacksteamdev over 4 years ago

This major version removes the FCM based push reloader.

  • Fix reloader message formatting 04d461a

https://github.com/extend-chrome/rollup-plugin-chrome-extension/compare/v3.0.0-beta.1...v3.0.1

chrome-extension-tools - Fixing the simple reloader

Published by jacksteamdev over 4 years ago

This release fixes the simple reloader and removes the push reloader completely.

chrome-extension-tools - Fixing README links

Published by jacksteamdev over 4 years ago

chrome-extension-tools - Migrating to @extend-chrome

Published by jacksteamdev over 4 years ago

This release marks the migration to a new organization!

  • Update README.md ff108fb
  • Extend chrome migration (#37) 66a427f
  • Update typos in readme.md 176195a

https://github.com/extend-chrome/rollup-plugin-chrome-extension/compare/v2.2.1...v2.2.2

chrome-extension-tools - Fixing the simple reloader

Published by jacksteamdev over 4 years ago

This version fixes a bug in the simple reloader and updates the docs to warn that the push reloader does not currently work.

  • Fix simple reloader (#31) 14d7fa1

https://github.com/bumble-org/rollup-plugin-chrome-extension/compare/v2.2.0...v2.2.1

chrome-extension-tools - v2.2.0

Published by jacksteamdev over 4 years ago

This release adds support for the devtools_tools in manifest.json, thanks to @witcher-development 👍

  • Add support for devtools_page 1c5cf32

https://github.com/bumble-org/rollup-plugin-chrome-extension/compare/v2.1.3...v2.2.0

chrome-extension-tools - v2.1.3

Published by jacksteamdev over 4 years ago

This release fixes a bug where an attempt to bundle multiple files with the same base name but different extensions would emit a misleading error. Now the bundle will fail with a more useful error.

  • Throw errors from reduceToRecord 567e8a1

https://github.com/bumble-org/rollup-plugin-chrome-extension/compare/v2.1.2...v2.1.3

chrome-extension-tools - v2.1.2

Published by jacksteamdev over 4 years ago

This release improves Windows compatibility.

chrome-extension-tools - Add new lib and types build

Published by jacksteamdev almost 5 years ago

The previous release did not include fresh builds of the lib and types folders.

A prepublishOnly script has been added to prevent this in the future.

chrome-extension-tools - Version 2.0.0

Published by jacksteamdev almost 5 years ago

Version 2.0.0

This version marks a complete refactor of the tests, plus some bugfixes we encountered while working on the tests.

The reloaders have been reincorporated into the codebase and refactored into their own Rollup plugins, which should be imported into the Rollup config file. The docs have been updated to reflect this.

Some old config options (assets and chunks) became unneccessary during the refactor, so we removed them.