зеркало из
1
0
Форкнуть 0
Webpack plugins for common Bugsnag actions.
Перейти к файлу
johnkiely1 a14a0a2365
Merge pull request #67 from charliegroll/cg2/MetadataInReadme
Adding `metadata` to the README as a build argument
2021-10-01 16:50:47 +01:00
.buildkite License auditing 2021-04-27 22:39:35 +01:00
.github tidy up unit-test.yml 2021-09-27 17:39:29 +01:00
bin use css-loader@5 for webpack 4 2021-09-27 17:15:53 +01:00
config License auditing 2021-04-27 22:39:35 +01:00
dockerfiles License auditing 2021-04-27 22:39:35 +01:00
scripts License auditing 2021-04-27 22:39:35 +01:00
test Merge branch 'master' into webpack-5-compat 2020-12-16 16:52:48 +00:00
.gitignore WIP 2018-01-10 14:57:04 +00:00
CHANGELOG.md chore: update changelog 2021-07-07 13:21:43 +01:00
CONTRIBUTING.md add CONTRIBUTING.md release guide 2021-07-06 14:08:25 +01:00
LICENSE.txt Polish/documentation for release 2018-01-12 15:33:59 +00:00
README.md Adding `metadata` to the README as a build argument 2021-09-30 14:08:02 -04:00
build-reporter-plugin.js use webpack for logging 2021-05-19 10:10:50 +01:00
docker-compose.yml License auditing 2021-04-27 22:39:35 +01:00
index.js Add source map upload plugin 2018-02-19 15:57:55 +00:00
package-lock.json 1.8.0 2021-07-08 08:12:11 +01:00
package.json 1.8.0 2021-07-08 08:12:11 +01:00
source-map-uploader-plugin.js fix(logging): use info instead of log on successful upload 2021-06-08 16:56:19 +01:00

README.md

webpack-bugsnag-plugins

Build status NPM

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 releaseStages)
    • 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 repository
      • revision: 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'.
    • metadata: object an object describing key/value pairs containing any custom build information that provides useful metadata about the build. e.g. build configuration parameters, versions of dependencies, reason for the build etc.
  • 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(
    // It's a good idea to only run this plugin when you're building a bundle
    // that will be released, rather than for every development build
    isDistEnv
      ? new BugsnagBuildReporterPlugin({
          apiKey: 'YOUR_API_KEY',
          appVersion: '1.2.3'
        }, { /* opts */ })
      : []
  )
}

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 sourcemaps
    • endpoint: 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(
    // It's a good idea to only run this plugin when you're building a bundle
    // that will be released, rather than for every development build
    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.