webpack-bugsnag-plugins
Webpack plugins for common Bugsnag actions.
Installation
npm install --save-dev webpack-bugsnag-plugins
Plugins
new BugsnagBuildReporterPlugin(build, opts):
WebpackPlugin
const { BugsnagBuildReporterPlugin } = require('webpack-bugsnag-plugins')
Reports your application's build to Bugsnag. It can auto detect source control from .git
, .hg
and package.json
.
This plugin hooks into the 'after-emit'
event once all output files have been generated by the Webpack compiler. If anything causes the compilation to fail before this step, the build report will not get sent.
build
describes the build you are reporting to Bugsnag
apiKey: string
your Bugsnag API key [required]appVersion: string
the version of the application you are building [required]releaseStage: string
'production'
, 'staging'
etc. (leave blank if this build can be released to different releaseStage
s)sourceControl: object
an object describing the source control of the build (if not specified, the module will attempt to detect source control information from .git
, .hg
and the nearest package.json
)
provider: string
can be one of: 'github'
, 'github-enterprise'
, 'gitlab'
, 'gitlab-onpremise'
, 'bitbucket'
, 'bitbucket-server'
repository: string
a URL (git
/ssh
/https
) pointing to the repository, or webpage representing the repositoryrevision: string
the unique identifier for the commit (e.g. git SHA)
builderName: string
the name of the person/machine that created this build (defaults to the result of the whoami
command)autoAssignRelease: boolean
automatically associate this build with any new error events and sessions that are received for the releaseStage
until a subsequent build notification is received. If this is set to true
and no releaseStage
is provided the build will be applied to 'production'
.
opts
logLevel: string
the minimum severity of log to output ('debug'
, 'info'
, 'warn'
, 'error'
), default 'warn'
logger: object
provide a different logger object { debug, info, warn, error }
path: string
the path to search for source control info, defaults to process.cwd()
endpoint: string
post the build payload to a URL other than the default (https://build.bugsnag.com
)
Usage
const { BugsnagBuildReporterPlugin } = require('webpack-bugsnag-plugins')
module.exports = {
entry: './app.js',
output: {
path: __dirname,
filename: './bundle.js'
},
plugins: [].concat(
isDistEnv
? new BugsnagBuildReporterPlugin({
apiKey: 'YOUR_API_KEY',
appVersion: '1.2.3'
}, { })
: []
)
}
new BugsnagSourceMapUploaderPlugin(opts):
WebpackPlugin
const { BugsnagSourceMapUploaderPlugin } = require('webpack-bugsnag-plugins')
Upload your application's sourcemap(s) to Bugsnag. When Webpack is done producing output, this plugin detects sourcemaps for any output chunks and uploads them to Bugsnag.
opts
provide options to the sourcemap uploader
apiKey: string
your Bugsnag API key [required]publicPath: string
the path to your bundled assets (as the browser will see them). This option must either be provided here, or as output.publicPath
in your Webpack config.appVersion: string
the version of the application you are building (defaults to the version
set in your project's package.json file, if one is specified there)codeBundleId: string
the codeBundleId (e.g. for NativeScript projects)overwrite: boolean
whether you want to overwrite previously uploaded sourcemapsendpoint: string
post the build payload to a URL other than the default (https://upload.bugsnag.com
)ignoredBundleExtensions: string[]
a list of bundle file extensions which shouldn't be uploaded (default [ '.css' ]
)
Usage
const { BugsnagSourceMapUploaderPlugin } = require('webpack-bugsnag-plugins')
module.exports = {
entry: './app.js',
devtool: 'source-map',
output: {
path: __dirname,
filename: './bundle.js',
publicPath: 'https://your-app.xyz/assets/'
},
plugins: [].concat(
isDistEnv
? new BugsnagSourceMapUploaderPlugin({
apiKey: 'YOUR_API_KEY',
appVersion: '1.2.3'
})
: []
)
}
Supported Webpack versions
These plugins have been tested with webpack versions 3, 4 and 5.
Support
Contributing
All contributors are welcome! See our contributing guide.
License
This module is free software released under the MIT License. See LICENSE.txt for details.