mirror of
https://github.com/mdn/webextensions-examples.git
synced 2026-04-16 06:18:35 +02:00
Improve documentation and move build target to addon folder
This commit is contained in:
@@ -1,15 +1,25 @@
|
||||
# WebExtension Webpack Example
|
||||
A minimal example of how to use npm modules from within a WebExtension.
|
||||
A minimal example of how to use [webpack](https://webpack.github.io) to package
|
||||
[npm](https://npmjs.com) modules so they can be used in a WebExtension.
|
||||
The example package used by this extension is `left-pad`, an essential package
|
||||
in almost any situation.
|
||||
|
||||
## What it does
|
||||
This setup takes a background and a content script entrypoint and outputs them
|
||||
to their respective target.
|
||||
This example shows how to use a node module in a background and a content script.
|
||||
It defines two build targets in [webpack.config.js](webpack.config.js), they each
|
||||
generate a file that includes all modules used the entry point and store it in
|
||||
the [addon](addon/) folder. The first one starts with [background_scripts/background.js](background_scripts/background.js)
|
||||
and stores it in `addon/background_scripts/index.js`. The other one does the
|
||||
same for [popup/left-pad.js](popup/left-pad.js) and stores it in `addon/popup/index.js`.
|
||||
|
||||
The extension includes a browser action with a popup, which provides an UI for
|
||||
running left-pad on a string with a chosen character. The operation can either be
|
||||
performed with the left-pad module included in the panel's script or in the
|
||||
background script.
|
||||
|
||||
## What it could do
|
||||
This could be infinitely extended - injecting global jQuery, adding babel,
|
||||
react/jsx, css modules, image processing and so on.
|
||||
react/jsx, css modules, image processing, local modules and so on.
|
||||
|
||||
## What it shows
|
||||
|
||||
@@ -20,7 +30,7 @@ react/jsx, css modules, image processing and so on.
|
||||
- `npm install`
|
||||
- `npm run build`
|
||||
|
||||
The WebExtension in the [dist](dist/) folder should now work.
|
||||
The WebExtension in the [addon](addon/) folder should now work.
|
||||
|
||||
## What about Browserify?
|
||||
Browserify works just as well as webpack for extensions, in the end it's a
|
||||
|
||||
|
Before Width: | Height: | Size: 530 B After Width: | Height: | Size: 530 B |
@@ -2,12 +2,10 @@
|
||||
"name": "webpack-webextension",
|
||||
"version": "1.0.0",
|
||||
"description": "A minimal example of how to use npm modules from within a WebExtension.",
|
||||
"main": "index.js",
|
||||
"scripts": {
|
||||
"test": "echo \"Error: no test specified\" && exit 1",
|
||||
"build": "webpack"
|
||||
},
|
||||
"author": "Martin Giger (https://humanoids.be)",
|
||||
"license": "MPL-2.0",
|
||||
"devDependencies": {
|
||||
"webpack": "^1.13.1"
|
||||
|
||||
@@ -4,7 +4,7 @@ module.exports = {
|
||||
popup: "./popup/left-pad.js"
|
||||
},
|
||||
output: {
|
||||
path: "dist",
|
||||
path: "addon",
|
||||
filename: "[name]/index.js"
|
||||
}
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user