Honeybadger's Webpack Source Map Plugin

This is a webpack plugin to upload javascript
sourcemaps to Honeybadger's
API endpoint for source maps.
Word Up! to the thredUP development team for a
similar webpack plugin they have authored.
Installation
Installing via Node.js
npm install @honeybadger-io/webpack --save-dev
Configuration
Plugin parameters
These plugin parameters correspond to the Honeybadger Sourcemap API.
apiKey
(required)
- The API key of your Honeybadger project
assetsUrl
(required)
- The base URL to production assets (scheme://host/path)
*
wildcards are supported. The plugin combines assetsUrl
with the generated minified js file name to build the API parameter minified_url
endpoint
(optional — default: "https://api.honeybadger.io/v1/source_maps")
- Where to upload your sourcemaps to. Perhaps you have a self hosted
sourcemap server you would like to upload your sourcemaps to instead
of honeybadger.
revision
(optional — default: "master")
- The deploy revision (i.e. commit sha) that your source map applies to. This could also be a code version. For best results, set it to something unique every time your code changes. See the Honeybadger docs for examples.
silent
(optional — default: "null/false")
- If true, silence log information emitted by the plugin.
ignoreErrors
(optional — default: "null/false")
- If true, webpack compilation errors are treated as warnings.
retries
(optional — default: 3, max: 10)
- This package implements fetch retry functionality via
https://github.com/vercel/fetch-retry
Retrying helps fix issues like `ECONNRESET` and `SOCKETTIMEOUT`
errors and retries on 429 and 500 errors as well.
workerCount
(optional — default: 5, min: 1)
- Sourcemaps are uploaded in parallel by a configurable number of
workers. Increase or decrease this value to configure how many sourcemaps
are being uploaded in parallel.
Limited parallelism helps with connection issues in Docker environments.
Vanilla webpack.config.js
const HoneybadgerSourceMapPlugin = require('@honeybadger-io/webpack')
const ASSETS_URL = 'https://cdn.example.com/assets';
const webpackConfig = {
plugins: [new HoneybadgerSourceMapPlugin({
apiKey: 'abc123',
assetsUrl: ASSETS_URL,
revision: 'master'
})]
}
Rails Webpacker config/webpack/environment.js
const { environment } = require('@rails/webpacker')
const HoneybadgerSourceMapPlugin = require('@honeybadger-io/webpack')
const revision = process.env.GIT_COMMIT || 'master'
environment.plugins.append(
'HoneybadgerSourceMap',
new HoneybadgerSourceMapPlugin({
apiKey: process.env.HONEYBADGER_API_KEY,
assetsUrl: process.env.ASSETS_URL,
silent: false,
ignoreErrors: false,
revision: revision
}))
module.exports = environment
See example Rails 5 application
https://github.com/honeybadger-io/honeybadger-rails-webpacker-example
Changelog
See https://github.com/honeybadger-io/honeybadger-webpack/blob/master/CHANGELOG.md
Contributing
- Fork it.
- Create a topic branch
git checkout -b my_branch
- Commit your changes
git commit -am "Boom"
- Push to your branch
git push origin my_branch
- Send a pull request
Development
- Run
npm install
- Run the tests with
npm test
- Build/test on save with
npm run build:watch
and npm run test:watch
Releasing
- With a clean working tree, use
npm version [new version]
to bump the version,
commit the changes, tag the release, and push to GitHub. See npm help version
for documentation. - To publish the release, use
npm publish
. See npm help publish
for
documentation.
License
The Honeybadger's Webpack Source Map Plugin is MIT licensed. See the
MIT-LICENSE
file in this repository for details.