honeybadger-webpack
honeybadger-webpack copied to clipboard
A webpack plugin to send sourcemaps to Honeybadger
Honeybadger's Webpack Source Map Plugin
Note: This repository has been moved to @honeybadger-io/js, home to all Honeybadger's JavaScript packages.
Webpack plugin to upload JavaScript sourcemaps to Honeybadger. You can also send deployment notifications.
Word Up! to the thredUP development team for a similar webpack plugin they have authored.
Installation
npm install @honeybadger-io/webpack --save-dev
Configuration
Plugin parameters
These plugin parameters correspond to the Honeybadger Source Map Upload API and Deployments 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 combinesassetsUrlwith the generated minified js file name to build the API parameterminified_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 hash) 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: 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.
deploy(optional — default: false)-
Configuration for deployment notifications. To disable deployment notifications, ignore this option. To enable deployment notifications, set this to
true, or to an object containing any of these fields (see the API reference):environment- The environment name, for example, "production"
repository- The base URL of the VCS repository (HTTPS-style), for example, "https://github.com/yourusername/yourrepo"
localUsername- The name of the user that triggered this deploy, for example, "Jane"
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',
// You can also enable deployment notifications:
deploy: {
environment: process.env.NODE_ENV,
repository: "https://github.com/yourusername/yourrepo"
}
})]
}
Rails Webpacker config/webpack/environment.js
const { environment } = require('@rails/webpacker')
const HoneybadgerSourceMapPlugin = require('@honeybadger-io/webpack')
// Assumes Heroku / 12-factor application style ENV variables
// named GIT_COMMIT, HONEYBADGER_API_KEY, ASSETS_URL
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
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:watchandnpm 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. Seenpm help versionfor documentation. - To publish the release, use
npm publish. Seenpm help publishfor documentation.
License
The Honeybadger's Webpack Source Map Plugin is MIT licensed. See the MIT-LICENSE file in this repository for details.