Skip to content

Commit bbe89a6

Browse files
Externalize EventEmitter3 dependency (RobotWebTools#688)
Co-authored-by: Matthijs van der Burgh <MatthijsBurgh@outlook.com>
1 parent 6fabccc commit bbe89a6

11 files changed

+29
-3
lines changed

examples/action_client.html

+1
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
<html>
33
<head>
44
<meta charset="utf-8" />
5+
<script src="https://unpkg.com/eventemitter3@latest/dist/eventemitter3.umd.min.js"></script>
56
<script src="../dist/RosLib.umd.cjs"></script>
67

78
<script>

examples/action_server.html

+1
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
<html>
33
<head>
44
<meta charset="utf-8" />
5+
<script src="https://unpkg.com/eventemitter3@latest/dist/eventemitter3.umd.min.js"></script>
56
<script src="../dist/RosLib.umd.cjs"></script>
67

78
<script>

examples/math.html

+1
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
<html>
33
<head>
44
<meta charset="utf-8" />
5+
<script src="https://unpkg.com/eventemitter3@latest/dist/eventemitter3.umd.min.js"></script>
56
<script src="../dist/RosLib.umd.cjs"></script>
67

78
<script>

examples/ros2_action_client.html

+1
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
<html>
33
<head>
44
<meta charset="utf-8" />
5+
<script src="https://unpkg.com/eventemitter3@latest/dist/eventemitter3.umd.min.js"></script>
56
<script src="../dist/RosLib.umd.cjs"></script>
67

78
<script>

examples/ros2_action_server.html

+1
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
<html>
33
<head>
44
<meta charset="utf-8" />
5+
<script src="https://unpkg.com/eventemitter3@latest/dist/eventemitter3.umd.min.js"></script>
56
<script src="../dist/RosLib.umd.cjs"></script>
67

78
<script>

examples/ros2_simple.html

+1
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
<html>
33
<head>
44
<meta charset="utf-8" />
5+
<script src="https://unpkg.com/eventemitter3@latest/dist/eventemitter3.umd.min.js"></script>
56
<script src="../dist/RosLib.umd.cjs"></script>
67

78
<script>

examples/simple.html

+1
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
<html>
33
<head>
44
<meta charset="utf-8" />
5+
<script src="https://unpkg.com/eventemitter3@latest/dist/eventemitter3.umd.min.js"></script>
56
<script src="../dist/RosLib.umd.cjs"></script>
67

78
<script>

examples/tf.html

+2-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,8 @@
22
<html>
33
<head>
44
<meta charset="utf-8" />
5-
<script src="../build/roslib.js"></script>
5+
<script src="https://unpkg.com/eventemitter3@latest/dist/eventemitter3.umd.min.js"></script>
6+
<script src="../dist/RosLib.umd.cjs"></script>
67

78
<script>
89
// Connecting to ROS

examples/urdf.html

+2-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,8 @@
22
<html>
33
<head>
44
<meta charset="utf-8" />
5-
<script src="../build/roslib.js"></script>
5+
<script src="https://unpkg.com/eventemitter3@latest/dist/eventemitter3.umd.min.js"></script>
6+
<script src="../dist/RosLib.umd.cjs"></script>
67

78
<script>
89
/**

test/cdn-import.test.js

+14
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
import { describe, it, expect } from 'vitest';
2+
import '../dist/RosLib.umd.cjs';
3+
import { readFileSync } from 'fs';
4+
import path from 'path';
5+
6+
describe('Using as if imported from a CDN', () => {
7+
it('Adds itself to the global namespace', () => {
8+
expect(globalThis.ROSLIB).toBeTruthy();
9+
})
10+
it('Does not include EventEmitter in the bundle', () => {
11+
// Read the bundled output of the file, check for `.on=function`, which is a reliable way to detect `EventEmitter.on` being defined.
12+
expect(readFileSync(path.resolve(__dirname, '../dist/RosLib.umd.cjs')).includes('.on=function')).toBeFalsy();
13+
})
14+
});

vite.config.js

+4-1
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,10 @@ export default defineConfig({
2727
rollupOptions: {
2828
// make sure to externalize deps that shouldn't be bundled
2929
// into your library
30-
external: ['ws', 'src/util/decompressPng.js'],
30+
external: ['eventemitter3', 'ws', 'src/util/decompressPng.js'],
31+
output: {
32+
globals: { eventemitter3: 'EventEmitter3' }
33+
}
3134
},
3235
},
3336
test: {

0 commit comments

Comments
 (0)