UNPKG

webpack-target-webextension

Version:

WebExtension plugin for Webpack. Supports code-splitting and dynamic import.

121 lines (79 loc) 5.41 kB
# Changelog ## 2.1.3 - Fix experimental_output stack overflow ## 2.1.2 - Fix experimental_output with HMR chunks - Fix experimental_output stack overflow ## 2.1.1 - Now rspack can use chunk splitting by `experimental_output`. ## 2.1.0 - Add a try-catch wrapper around the entry file of serviceWorkerEntry so if the initial code throws, you can still open the console of it. **Enabled by default**, set option `tryCatchWrapper` to `false` to disable it. - Add `experimental_output` to support service worker/content scripts used with [`splitChunks.chunks`](https://webpack.js.org/plugins/split-chunks-plugin/#splitchunkschunks) or [`optimization.runtimeChunk`](https://webpack.js.org/configuration/optimization/#optimizationruntimechunk). ## 2.0.1 - Fix ServiceWorkerPlugin does not add eager chunks correctly in watch mode. - Fix `splitChunks: { chunks: 'all', minSize: 1 }` crashes rspack. ## 2.0.0 - Works on rspack now - (Breaking) Minimal Node.js requirement changed from 14.17.16 to 18.20.5 - (Breaking) Deprecated option `BackgroundOptions.entry` is removed. Use `pageEntry` and/or `serviceWorkerEntry` instead. - (Breaking) Deprecated option `BackgroundOptions.manifest` is removed. - (Breaking) Option `noWarningDynamicEntry` has been renamed to `noDynamicEntryWarning`. - (Breaking) `background.pageEntry` cannot be the same as `background.serviceWorkerEntry`. - Now `devServer.hot` is set to `only` by default. - Now `output.environment.dynamicImport` is set to `true` by default. - Now `output.hotUpdateChunkFilename` is set to `hot/[id].[fullhash].js` by default. - Now `output.hotUpdateMainFilename` is set to `hot/[runtime].[fullhash].json` by default. ## 1.1.2 - Support main world content script to be bundled. Also added a guide and example for this. ## 1.1.1 - Add [a workaround](https://github.com/awesome-webextension/webpack-target-webextension/pull/42) for [a Chrome bug of loading content script in a sandboxed iframe](https://github.com/awesome-webextension/webpack-target-webextension/issues/41). - Fix [compatibility with mini-css-extract-plugin in Manifest v3](https://github.com/awesome-webextension/webpack-target-webextension/issues/43) - Add a warning if `background.pageEntry` and `background.serviceWorkerEntry` are the same. The only chunk loading method `serviceWorkerEntry` supports is `importScripts` ([ES Module is not supported yet](https://github.com/awesome-webextension/webpack-target-webextension/issues/24)) and `pageEntry` only supports `<script>` or `import()`. The chunk loading methods they supported have no intersection, therefore this config is impossible to work. This will be a hard error in the next version. ## 1.1.0 - Deprecate `background.entry` and `background.manifest` in the config. - Add `background.pageEntry` and `background.serviceWorkerEntry` in the config. Now you can build for both [limited event page](https://github.com/w3c/webextensions/issues/134) (used by [Firefox](https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/Background_scripts) and Safari) and background service worker (Chrome) in a single webpack build. ### Migrations If you have - `background.manifest = 3`, 1. remove `background.manifest` 2. change `background.entry` to `background.serviceWorkerEntry` - `background.manifest = 2` (or `undefined`), 1. remove `background.manifest` 2. change `background.entry` to `background.pageEntry` ## 1.0.5 Fix [frameId is missing when injecting content script (#36)](https://github.com/awesome-webextension/webpack-target-webextension/pull/36). ## 1.0.4 Fix [`__webpack_require__.e` is not a function in MV3 (#33)](https://github.com/awesome-webextension/webpack-target-webextension/issues/33). ## 1.0.3 Add `weakRuntimeCheck` option to support using with `mini-css-extract-plugin`. ## 1.0.2 Fix [false positive of `browser` when a dom id is browser (#28)](https://github.com/awesome-webextension/webpack-target-webextension/issues/28). ## 1.0.1 Fix chunk loading in MV3 background worker. ## 1.0.0 We made a big write to support Manifest V3. ### Breaking changes and migration - Drop Webpack 4 support. 1. Stay at `v0.2.1` if you cannot upgrade to webpack 5. (Webpack 4 support from `0.3.0` to `0.4.4` was broken). 1. Upgrade to Webpack 5. 1. Replace `target: WebExtensionTarget({...})` with `target: ["web", "ES2015"]`. 1. Node polyfills are not supported in webpack 5. Please follow the webpack 5 migration guide to shim Node libraries. 1. Add `new WebExtensionTarget()` to your plugins. 1. Reconfigure this plugin. - Drop Node 14- support. - `webpack-target-webextension/lib/background` has been removed. - Remove `import 'webpack-target-webextension/lib/background'` from your project. - Configure `background` as in the README documented. - If you don't want it anymore, set `background.chunkLoaderFallback` to **false**. - If you configured your `devServer` as pre-1.0.0 document suggested, you can try to remove them. `1.0.0` provides out-of-box auto configure to enable HMR. - Set `hmrConfig` to **false** to disable this feature. ## 0.4.4 - 2021-07-25 [Add dynamic import for webpack5. (#20)](https://github.com/awesome-webextension/webpack-target-webextension/pull/20) ## 0.4.3 - 2021-06-12 [Add support for injection in iframe. (#17)](https://github.com/awesome-webextension/webpack-target-webextension/pull/17)