Skip to content

Commit e3bd8c6

Browse files
authored
Add commonjs wrappers to components when using require (#1288)
1 parent cd5a2bc commit e3bd8c6

File tree

15 files changed

+150
-8
lines changed

15 files changed

+150
-8
lines changed
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
public/bundle.js

examples/webpack-require/README.md

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
# Bare bones webpack project
2+
3+
Check the rollbar location in package.json and change it to your own.
4+
`npm install`
5+
6+
You **have to** build after making changes.
7+
`npm run build`
8+
9+
Then start the webpack server.
10+
`npm run start`
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
{
2+
"name": "webpack-app",
3+
"version": "1.0.0",
4+
"description": "",
5+
"main": "index.js",
6+
"scripts": {
7+
"start": "webpack serve",
8+
"build": "webpack",
9+
"test": "echo \"Error: no test specified\" && exit 1"
10+
},
11+
"keywords": [],
12+
"author": "",
13+
"license": "ISC",
14+
"devDependencies": {
15+
"webpack": "^5.101.0",
16+
"webpack-cli": "^6.0.1",
17+
"webpack-dev-server": "^5.2.2"
18+
},
19+
"dependencies": {
20+
"rollbar": "file:../rollbar.tgz"
21+
}
22+
}
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
<!DOCTYPE html>
2+
<html lang="en">
3+
<head>
4+
</head>
5+
<body>
6+
Hello, World!
7+
<script type="text/javascript" src="bundle.js"></script>
8+
</body>
9+
</html>
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
const Rollbar = require('rollbar/src/browser/core');
2+
const telemeter = require('rollbar/src/telemetry');
3+
const instrumenter = require('rollbar/src/browser/telemetry');
4+
const wrapGlobals = require('rollbar/src/browser/wrapGlobals');
5+
const scrub = require('rollbar/src/scrub');
6+
const truncation = require('rollbar/src/truncation');
7+
const tracing = require('rollbar/src/tracing/tracing');
8+
const recorder = require('rollbar/src/browser/replay/recorder');
9+
10+
Rollbar.setComponents({
11+
telemeter: telemeter,
12+
instrumenter: instrumenter,
13+
wrapGlobals: wrapGlobals,
14+
scrub: scrub,
15+
truncation: truncation,
16+
tracing: tracing,
17+
recorder: recorder,
18+
});
19+
20+
21+
const rollbar = Rollbar.init({
22+
accessToken: 'TOKEN',
23+
captureUncaught: true,
24+
captureUnhandledRejections: true,
25+
});
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
const path = require('path');
2+
3+
module.exports = {
4+
mode: 'development', // or 'production'
5+
entry: './src/index.js', // Your main application entry file
6+
output: {
7+
filename: 'bundle.js',
8+
path: path.resolve(__dirname, 'public'), // Output directory
9+
},
10+
devServer: {
11+
static: path.resolve(__dirname, 'public'), // Serve static files from 'public'
12+
port: 8080,
13+
hot: true, // Enable Hot Module Replacement
14+
open: true, // Open the browser automatically
15+
},
16+
// Add loaders and plugins as needed for your project (e.g., Babel for React/Vue)
17+
};

package.json

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -34,42 +34,42 @@
3434
},
3535
"./src/browser/core": {
3636
"types": "./src/browser/core.d.ts",
37-
"require": "./src/browser/core.js",
37+
"require": "./src/browser/core.cjs",
3838
"default": "./src/browser/core.js"
3939
},
4040
"./src/telemetry": {
4141
"types": "./src/telemetry.d.ts",
42-
"require": "./src/telemetry.js",
42+
"require": "./src/telemetry.cjs",
4343
"default": "./src/telemetry.js"
4444
},
4545
"./src/browser/telemetry": {
4646
"types": "./src/browser/telemetry.d.ts",
47-
"require": "./src/browser/telemetry.js",
47+
"require": "./src/browser/telemetry.cjs",
4848
"default": "./src/browser/telemetry.js"
4949
},
5050
"./src/browser/wrapGlobals": {
5151
"types": "./src/browser/wrapGlobals.d.ts",
52-
"require": "./src/browser/wrapGlobals.js",
52+
"require": "./src/browser/wrapGlobals.cjs",
5353
"default": "./src/browser/wrapGlobals.js"
5454
},
5555
"./src/scrub": {
5656
"types": "./src/scrub.d.ts",
57-
"require": "./src/scrub.js",
57+
"require": "./src/scrub.cjs",
5858
"default": "./src/scrub.js"
5959
},
6060
"./src/truncation": {
6161
"types": "./src/truncation.d.ts",
62-
"require": "./src/truncation.js",
62+
"require": "./src/truncation.cjs",
6363
"default": "./src/truncation.js"
6464
},
6565
"./src/tracing/tracing": {
6666
"types": "./src/tracing/tracing.d.ts",
67-
"require": "./src/tracing/tracing.js",
67+
"require": "./src/tracing/tracing.cjs",
6868
"default": "./src/tracing/tracing.js"
6969
},
7070
"./src/browser/replay/recorder": {
7171
"types": "./src/browser/replay/recorder.d.ts",
72-
"require": "./src/browser/replay/recorder.js",
72+
"require": "./src/browser/replay/recorder.cjs",
7373
"default": "./src/browser/replay/recorder.js"
7474
}
7575
},

src/browser/core.cjs

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
/**
2+
* CommonJS wrapper for ES module
3+
*
4+
* This file provides CommonJS compatibility for users who use require()
5+
*/
6+
7+
module.exports = require('./core.js').default || require('./core.js');

src/browser/replay/recorder.cjs

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
/**
2+
* CommonJS wrapper for ES module
3+
*
4+
* This file provides CommonJS compatibility for users who use require()
5+
*/
6+
7+
module.exports = require('./recorder.js').default || require('./recorder.js');

src/browser/telemetry.cjs

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
/**
2+
* CommonJS wrapper for ES module
3+
*
4+
* This file provides CommonJS compatibility for users who use require()
5+
*/
6+
7+
module.exports = require('./telemetry.js').default || require('./telemetry.js');

0 commit comments

Comments
 (0)