# @posthog/webpack-plugin Webpack plugin for uploading source maps to PostHog for error tracking. [SEE FULL DOCS](https://posthog.com/docs/error-tracking/upload-source-maps/webpack) ## Installation ```bash npm install @posthog/webpack-plugin --save-dev ``` ## Usage Add the plugin to your webpack configuration: ```typescript import { PosthogWebpackPlugin } from '@posthog/webpack-plugin' export default { // ... your webpack config plugins: [ new PosthogWebpackPlugin({ personalApiKey: process.env.POSTHOG_PERSONAL_API_KEY, projectId: process.env.POSTHOG_PROJECT_ID, sourcemaps: { enabled: true, releaseName: 'my-app', releaseVersion: '1.0.0', }, }), ], } ``` ### Configuration Options | Option | Type | Required | Default | Description | | ------------------------------ | ---------------------------------------------------- | -------- | -------------------------- | ------------------------------------------- | | `personalApiKey` | `string` | Yes | - | Your PostHog personal API key | | `projectId` | `string` | Yes | - | Your PostHog project/environment ID | | `envId` | `string` | No | - | Deprecated alias for `projectId` | | `host` | `string` | No | `https://us.i.posthog.com` | PostHog instance host | | `logLevel` | `'debug' \| 'info' \| 'warn' \| 'error' \| 'silent'` | No | `'info'` | Logging verbosity | | `cliBinaryPath` | `string` | No | Auto-detected | Path to the PostHog CLI binary | | `sourcemaps.enabled` | `boolean` | No | `true` in production | Enable source map processing | | `sourcemaps.releaseName` | `string` | No | - | Release name for source map grouping | | `sourcemaps.releaseVersion` | `string` | No | - | Version identifier for the release | | `sourcemaps.deleteAfterUpload` | `boolean` | No | `true` | Delete source maps after upload | | `sourcemaps.batchSize` | `number` | No | - | Number of source maps to upload in parallel | ### Full Example ```typescript import path from 'node:path' import webpack from 'webpack' import { PosthogWebpackPlugin } from '@posthog/webpack-plugin' import packageJson from './package.json' const config: webpack.Configuration = { mode: 'production', entry: './src/index.ts', output: { filename: 'bundle.js', path: path.resolve(__dirname, 'dist'), }, plugins: [ new PosthogWebpackPlugin({ personalApiKey: process.env.POSTHOG_PERSONAL_API_KEY, projectId: process.env.POSTHOG_PROJECT_ID, host: process.env.POSTHOG_API_HOST, logLevel: 'error', sourcemaps: { enabled: true, releaseName: packageJson.name, releaseVersion: packageJson.version, deleteAfterUpload: true, }, }), ], } export default config ``` ## Questions? ### [Check out our community page.](https://posthog.com/docs/error-tracking/upload-source-maps/webpack)