ElasticAPMSourceMapPlugin is a Webpack plugin that uploads sourcemaps generated by Webpack to a Elastic APM server.
Use npm:
$ npm install elastic-apm-sourcemap-webpack-plugin --save-dev
Use yarn:
$ yarn add elastic-apm-sourcemap-webpack-plugin --dev
An example of webpack.config.js
:
const ElasticAPMSourceMapPlugin = require('elastic-apm-sourcemap-webpack-plugin').default;
const path = require('path');
const PUBLIC_PATH = 'https://path/to/assets';
module.exports = {
mode: 'production',
entry: path.resolve(__dirname, './entry.js'),
publicPath: PUBLIC_PATH,
output: {
path: 'build',
filename: 'index-[hash].js'
},
plugins: [
new ElasticAPMSourceMapPlugin({
serviceName: 'SERVICE_NAME',
serviceVersion: 'SERVICE_VERSION',
serverURL: 'http://127.0.0.1:8200/assets/v1/sourcemaps',
publicPath: PUBLIC_PATH,
secret: 'SECRET',
logLevel: 'debug'
})
]
};
If you are using webpack.babel.js
, you can import it without .default
:
import ElasticAPMSourceMapPlugin from 'elastic-apm-sourcemap-webpack-plugin';
export default {
// ...
plugins: [new ElasticAPMSourceMapPlugin(/* ... */)]
};
Pass an object to ElasticAPMSourceMapPlugin
to configure the plugin. Available fields are:
Required. Need to be the same value as in the APM RUM JavaScript agent configuration.
Required. Need to be the same value as in the APM RUM JavaScript agent configuration.
Required. The URL of the APM server to upload sourcemaps to.
Required. The base path which will be used to create the bundle_filepath
. Need to be an absolute path.
Optional. The secret token for uploading sourcemaps. This field is required if the APM server needs it.
Optional. Default to 'warn'
. Level of the messages that ElasticAPMSourceMapPlugin
will log.
Optional. Default to false
. Set it to true
to avoid adding errors to the webpack compilation.