Improve documentation and move build target to addon folder

This commit is contained in:
Martin Giger
2016-09-29 12:11:56 +02:00
parent 71641abd14
commit 1974e3cea6
6 changed files with 16 additions and 8 deletions

View File

@@ -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

View File

Before

Width:  |  Height:  |  Size: 530 B

After

Width:  |  Height:  |  Size: 530 B

View File

@@ -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"

View File

@@ -4,7 +4,7 @@ module.exports = {
popup: "./popup/left-pad.js"
},
output: {
path: "dist",
path: "addon",
filename: "[name]/index.js"
}
};