Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
88 changes: 88 additions & 0 deletions .size-limit.js
Original file line number Diff line number Diff line change
Expand Up @@ -9,13 +9,15 @@ module.exports = [
import: createImport('init'),
gzip: true,
limit: '26 KB',
disablePlugins: ['@size-limit/esbuild'],
},
{
name: '@sentry/browser - with treeshaking flags',
path: 'packages/browser/build/npm/esm/prod/index.js',
import: createImport('init'),
gzip: true,
limit: '25 KB',
disablePlugins: ['@size-limit/esbuild'],
modifyWebpackConfig: function (config) {
const webpack = require('webpack');

Expand All @@ -39,34 +41,39 @@ module.exports = [
import: createImport('init', 'browserTracingIntegration'),
gzip: true,
limit: '44 KB',
disablePlugins: ['@size-limit/esbuild'],
},
{
name: '@sentry/browser (incl. Tracing + Span Streaming)',
path: 'packages/browser/build/npm/esm/prod/index.js',
import: createImport('init', 'browserTracingIntegration', 'spanStreamingIntegration'),
gzip: true,
limit: '48 KB',
disablePlugins: ['@size-limit/esbuild'],
},
{
name: '@sentry/browser (incl. Tracing, Profiling)',
path: 'packages/browser/build/npm/esm/prod/index.js',
import: createImport('init', 'browserTracingIntegration', 'browserProfilingIntegration'),
gzip: true,
limit: '49 KB',
disablePlugins: ['@size-limit/esbuild'],
},
{
name: '@sentry/browser (incl. Tracing, Replay)',
path: 'packages/browser/build/npm/esm/prod/index.js',
import: createImport('init', 'browserTracingIntegration', 'replayIntegration'),
gzip: true,
limit: '84 KB',
disablePlugins: ['@size-limit/esbuild'],
},
{
name: '@sentry/browser (incl. Tracing, Replay) - with treeshaking flags',
path: 'packages/browser/build/npm/esm/prod/index.js',
import: createImport('init', 'browserTracingIntegration', 'replayIntegration'),
gzip: true,
limit: '75 KB',
disablePlugins: ['@size-limit/esbuild'],
modifyWebpackConfig: function (config) {
const webpack = require('webpack');

Expand All @@ -90,55 +97,63 @@ module.exports = [
import: createImport('init', 'browserTracingIntegration', 'replayIntegration', 'replayCanvasIntegration'),
gzip: true,
limit: '88 KB',
disablePlugins: ['@size-limit/esbuild'],
},
{
name: '@sentry/browser (incl. Tracing, Replay, Feedback)',
path: 'packages/browser/build/npm/esm/prod/index.js',
import: createImport('init', 'browserTracingIntegration', 'replayIntegration', 'feedbackIntegration'),
gzip: true,
limit: '101 KB',
disablePlugins: ['@size-limit/esbuild'],
},
{
name: '@sentry/browser (incl. Feedback)',
path: 'packages/browser/build/npm/esm/prod/index.js',
import: createImport('init', 'feedbackIntegration'),
gzip: true,
limit: '43 KB',
disablePlugins: ['@size-limit/esbuild'],
},
{
name: '@sentry/browser (incl. sendFeedback)',
path: 'packages/browser/build/npm/esm/prod/index.js',
import: createImport('init', 'sendFeedback'),
gzip: true,
limit: '32 KB',
disablePlugins: ['@size-limit/esbuild'],
},
{
name: '@sentry/browser (incl. FeedbackAsync)',
path: 'packages/browser/build/npm/esm/prod/index.js',
import: createImport('init', 'feedbackAsyncIntegration'),
gzip: true,
limit: '36 KB',
disablePlugins: ['@size-limit/esbuild'],
},
{
name: '@sentry/browser (incl. Metrics)',
path: 'packages/browser/build/npm/esm/prod/index.js',
import: createImport('init', 'metrics'),
gzip: true,
limit: '28 KB',
disablePlugins: ['@size-limit/esbuild'],
},
{
name: '@sentry/browser (incl. Logs)',
path: 'packages/browser/build/npm/esm/prod/index.js',
import: createImport('init', 'logger'),
gzip: true,
limit: '28 KB',
disablePlugins: ['@size-limit/esbuild'],
},
{
name: '@sentry/browser (incl. Metrics & Logs)',
path: 'packages/browser/build/npm/esm/prod/index.js',
import: createImport('init', 'metrics', 'logger'),
gzip: true,
limit: '29 KB',
disablePlugins: ['@size-limit/esbuild'],
},
// React SDK (ESM)
{
Expand All @@ -148,6 +163,7 @@ module.exports = [
ignore: ['react/jsx-runtime'],
gzip: true,
limit: '28 KB',
disablePlugins: ['@size-limit/esbuild'],
},
{
name: '@sentry/react (incl. Tracing)',
Expand All @@ -156,6 +172,7 @@ module.exports = [
ignore: ['react/jsx-runtime'],
gzip: true,
limit: '47 KB',
disablePlugins: ['@size-limit/esbuild'],
},
// Vue SDK (ESM)
{
Expand All @@ -164,13 +181,15 @@ module.exports = [
import: createImport('init'),
gzip: true,
limit: '31 KB',
disablePlugins: ['@size-limit/esbuild'],
},
{
name: '@sentry/vue (incl. Tracing)',
path: 'packages/vue/build/esm/index.js',
import: createImport('init', 'browserTracingIntegration'),
gzip: true,
limit: '46 KB',
disablePlugins: ['@size-limit/esbuild'],
},
// Svelte SDK (ESM)
{
Expand All @@ -179,61 +198,71 @@ module.exports = [
import: createImport('init'),
gzip: true,
limit: '26 KB',
disablePlugins: ['@size-limit/esbuild'],
},
// Browser CDN bundles
{
name: 'CDN Bundle',
path: createCDNPath('bundle.min.js'),
gzip: true,
limit: '29 KB',
disablePlugins: ['@size-limit/esbuild'],
},
{
name: 'CDN Bundle (incl. Tracing)',
path: createCDNPath('bundle.tracing.min.js'),
gzip: true,
limit: '46.5 KB',
disablePlugins: ['@size-limit/esbuild'],
},
{
name: 'CDN Bundle (incl. Logs, Metrics)',
path: createCDNPath('bundle.logs.metrics.min.js'),
gzip: true,
limit: '31 KB',
disablePlugins: ['@size-limit/esbuild'],
},
{
name: 'CDN Bundle (incl. Tracing, Logs, Metrics)',
path: createCDNPath('bundle.tracing.logs.metrics.min.js'),
gzip: true,
limit: '47.5 KB',
disablePlugins: ['@size-limit/esbuild'],
},
{
name: 'CDN Bundle (incl. Replay, Logs, Metrics)',
path: createCDNPath('bundle.replay.logs.metrics.min.js'),
gzip: true,
limit: '70 KB',
disablePlugins: ['@size-limit/esbuild'],
},
{
name: 'CDN Bundle (incl. Tracing, Replay)',
path: createCDNPath('bundle.tracing.replay.min.js'),
gzip: true,
limit: '83.5 KB',
disablePlugins: ['@size-limit/esbuild'],
},
{
name: 'CDN Bundle (incl. Tracing, Replay, Logs, Metrics)',
path: createCDNPath('bundle.tracing.replay.logs.metrics.min.js'),
gzip: true,
limit: '84.5 KB',
disablePlugins: ['@size-limit/esbuild'],
},
{
name: 'CDN Bundle (incl. Tracing, Replay, Feedback)',
path: createCDNPath('bundle.tracing.replay.feedback.min.js'),
gzip: true,
limit: '89 KB',
disablePlugins: ['@size-limit/esbuild'],
},
{
name: 'CDN Bundle (incl. Tracing, Replay, Feedback, Logs, Metrics)',
path: createCDNPath('bundle.tracing.replay.feedback.logs.metrics.min.js'),
gzip: true,
limit: '90 KB',
disablePlugins: ['@size-limit/esbuild'],
},
// browser CDN bundles (non-gzipped)
{
Expand All @@ -242,62 +271,71 @@ module.exports = [
gzip: false,
brotli: false,
limit: '84 KB',
disablePlugins: ['@size-limit/esbuild'],
},
{
name: 'CDN Bundle (incl. Tracing) - uncompressed',
path: createCDNPath('bundle.tracing.min.js'),
gzip: false,
brotli: false,
limit: '138 KB',
disablePlugins: ['@size-limit/esbuild'],
},
{
name: 'CDN Bundle (incl. Logs, Metrics) - uncompressed',
path: createCDNPath('bundle.logs.metrics.min.js'),
gzip: false,
brotli: false,
limit: '89 KB',
disablePlugins: ['@size-limit/esbuild'],
},
{
name: 'CDN Bundle (incl. Tracing, Logs, Metrics) - uncompressed',
path: createCDNPath('bundle.tracing.logs.metrics.min.js'),
gzip: false,
brotli: false,
limit: '141.5 KB',
disablePlugins: ['@size-limit/esbuild'],
},
{
name: 'CDN Bundle (incl. Replay, Logs, Metrics) - uncompressed',
path: createCDNPath('bundle.replay.logs.metrics.min.js'),
gzip: false,
brotli: false,
limit: '212 KB',
disablePlugins: ['@size-limit/esbuild'],
},
{
name: 'CDN Bundle (incl. Tracing, Replay) - uncompressed',
path: createCDNPath('bundle.tracing.replay.min.js'),
gzip: false,
brotli: false,
limit: '255.5 KB',
disablePlugins: ['@size-limit/esbuild'],
},
{
name: 'CDN Bundle (incl. Tracing, Replay, Logs, Metrics) - uncompressed',
path: createCDNPath('bundle.tracing.replay.logs.metrics.min.js'),
gzip: false,
brotli: false,
limit: '259 KB',
disablePlugins: ['@size-limit/esbuild'],
},
{
name: 'CDN Bundle (incl. Tracing, Replay, Feedback) - uncompressed',
path: createCDNPath('bundle.tracing.replay.feedback.min.js'),
gzip: false,
brotli: false,
limit: '269 KB',
disablePlugins: ['@size-limit/esbuild'],
},
{
name: 'CDN Bundle (incl. Tracing, Replay, Feedback, Logs, Metrics) - uncompressed',
path: createCDNPath('bundle.tracing.replay.feedback.logs.metrics.min.js'),
gzip: false,
brotli: false,
limit: '272 KB',
disablePlugins: ['@size-limit/esbuild'],
},
// Next.js SDK (ESM)
{
Expand All @@ -307,6 +345,7 @@ module.exports = [
ignore: ['next/router', 'next/constants'],
gzip: true,
limit: '49 KB',
disablePlugins: ['@size-limit/esbuild'],
},
// SvelteKit SDK (ESM)
{
Expand All @@ -316,6 +355,7 @@ module.exports = [
ignore: ['$app/stores'],
gzip: true,
limit: '45 KB',
disablePlugins: ['@size-limit/esbuild'],
},
// Node-Core SDK (ESM)
{
Expand All @@ -325,6 +365,7 @@ module.exports = [
ignore: [...builtinModules, ...nodePrefixedBuiltinModules],
gzip: true,
limit: '60 KB',
disablePlugins: ['@size-limit/esbuild'],
},
// Node SDK (ESM)
{
Expand All @@ -334,13 +375,15 @@ module.exports = [
ignore: [...builtinModules, ...nodePrefixedBuiltinModules],
gzip: true,
limit: '177 KB',
disablePlugins: ['@size-limit/esbuild'],
},
{
name: '@sentry/node - without tracing',
path: 'packages/node/build/esm/index.js',
import: createImport('initWithoutDefaultIntegrations', 'getDefaultIntegrationsWithoutPerformance'),
gzip: true,
limit: '100 KB',
disablePlugins: ['@size-limit/esbuild'],
ignore: [...builtinModules, ...nodePrefixedBuiltinModules],
modifyWebpackConfig: function (config) {
const webpack = require('webpack');
Expand All @@ -364,6 +407,51 @@ module.exports = [
ignore: [...builtinModules, ...nodePrefixedBuiltinModules],
gzip: true,
limit: '117 KB',
disablePlugins: ['@size-limit/esbuild'],
},
// Cloudflare SDK (ESM) - compressed, minified to match `wrangler deploy --dry-run --minify` output
{
name: '@sentry/cloudflare (withSentry) - minified',
path: 'packages/cloudflare/build/esm/index.js',
import: createImport('withSentry', 'instrumentDurableObjectWithSentry', 'instrumentWorkflowWithSentry'),
ignore: [...builtinModules, ...nodePrefixedBuiltinModules],
gzip: false,
brotli: false,
limit: '250 KiB',
disablePlugins: ['@size-limit/webpack'],
webpack: false,
modifyEsbuildConfig: function (config) {
config.keepNames = true;
// Match wrangler's build settings
config.conditions = ['workerd', 'worker', 'browser'];
config.platform = 'browser';
config.format = 'esm';
return config;
},
Comment thread
JPeer264 marked this conversation as resolved.
},
// Cloudflare SDK (ESM) - uncompressed, unminified to match `wrangler deploy --dry-run` output
{
name: '@sentry/cloudflare (withSentry)',
path: 'packages/cloudflare/build/esm/index.js',
import: createImport('withSentry', 'instrumentDurableObjectWithSentry', 'instrumentWorkflowWithSentry'),
ignore: [...builtinModules, ...nodePrefixedBuiltinModules],
gzip: false,
brotli: false,
limit: '420 KiB',
disablePlugins: ['@size-limit/webpack'],
webpack: false,
modifyEsbuildConfig: function (config) {
config.minify = false;
config.minifyIdentifiers = false;
config.minifySyntax = false;
config.minifyWhitespace = false;
config.keepNames = true;
// Match wrangler's build settings
config.conditions = ['workerd', 'worker', 'browser'];
config.platform = 'browser';
config.format = 'esm';
return config;
},
},
];

Expand Down
Loading
Loading