Skip to content

Commit 823251f

Browse files
authored
refactor(bundler-tests): split webpack tests into webpack-4 and webpack-5 (#6098)
1 parent 66ee4d6 commit 823251f

File tree

22 files changed

+257
-115
lines changed

22 files changed

+257
-115
lines changed

.gitignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,10 @@ build/Release
3838
# Dependency directories
3939
node_modules/
4040
jspm_packages/
41+
42+
# Output directories
4143
build/
44+
dist/
4245

4346
# TypeScript v1 declaration files
4447
typings/

CHANGELOG.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,8 @@ For notes on migrating to 2.x / 0.200.x see [the upgrade guide](doc/upgrade-to-2
2020

2121
### :house: Internal
2222

23+
* refactor(bundler-tests): split webpack tests into webpack-4 and webpack-5 [#6098](https://github.com/open-telemetry/opentelemetry-js/pull/6098) @overbalance
24+
2325
## 2.2.0
2426

2527
### :bug: Bug Fixes
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
package-lock=false
2+
install-links=false
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
<!doctype html>
2+
<html lang="en">
3+
<head>
4+
<meta charset="utf-8" />
5+
<title>OpenTelemetry example</title>
6+
<meta name="viewport" content="width=device-width, initial-scale=1" />
7+
</head>
8+
9+
<body>
10+
Example of using the OpenTelemetry Logs SDK
11+
<br />
12+
<button id="emit-event-button">Emit event</button>
13+
</body>
14+
</html>
Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
{
2+
"name": "webpack-4-bundle-test",
3+
"private": true,
4+
"version": "0.208.0",
5+
"description": "Test app for logs in webpack 4",
6+
"type": "module",
7+
"scripts": {
8+
"test:bundle": "npm i && webpack --config webpack.config.mjs",
9+
"start": "npm i && webpack serve --config webpack.config.mjs --open"
10+
},
11+
"repository": {
12+
"type": "git",
13+
"url": "git+ssh://[email protected]/open-telemetry/opentelemetry-js.git"
14+
},
15+
"keywords": [
16+
"opentelemetry",
17+
"web",
18+
"events"
19+
],
20+
"engines": {
21+
"node": "^18.19.0 || >=20.6.0"
22+
},
23+
"author": "OpenTelemetry Authors",
24+
"license": "Apache-2.0",
25+
"bugs": {
26+
"url": "https://github.com/open-telemetry/opentelemetry-js/issues"
27+
},
28+
"devDependencies": {
29+
"@babel/core": "^7.28.5",
30+
"@babel/preset-env": "^7.28.5",
31+
"babel-loader": "^8.0.0",
32+
"html-webpack-plugin": "^4.5.2",
33+
"webpack": "^4",
34+
"webpack-cli": "^4",
35+
"webpack-dev-server": "^4"
36+
},
37+
"dependencies": {
38+
"@opentelemetry/api": "file:../../../api",
39+
"@opentelemetry/api-logs": "file:../../../experimental/packages/api-logs",
40+
"@opentelemetry/exporter-logs-otlp-http": "file:../../../experimental/packages/exporter-logs-otlp-http",
41+
"@opentelemetry/sdk-logs": "file:../../../experimental/packages/sdk-logs"
42+
},
43+
"homepage": "https://github.com/open-telemetry/opentelemetry-js/tree/main/bundler-tests/browser/webpack-4"
44+
}
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
{
2+
"name": "webpack-4-bundle-test"
3+
}
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
import { logs } from '@opentelemetry/api-logs';
2+
import { diag, DiagConsoleLogger } from '@opentelemetry/api';
3+
import { OTLPLogExporter } from '@opentelemetry/exporter-logs-otlp-http';
4+
import {
5+
LoggerProvider,
6+
SimpleLogRecordProcessor,
7+
} from '@opentelemetry/sdk-logs';
8+
9+
export function setupOpenTelemetry() {
10+
// setup diagnostics
11+
diag.setLogger({
12+
logger: new DiagConsoleLogger(),
13+
options: {
14+
logLevel: 'info',
15+
},
16+
});
17+
18+
// setup logs
19+
logs.setGlobalLoggerProvider(
20+
new LoggerProvider({
21+
// SimpleLogRecordProcessor is for testing only, do not use in production.
22+
processors: [new SimpleLogRecordProcessor(new OTLPLogExporter())],
23+
})
24+
);
25+
}
Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
import { fileURLToPath } from 'url';
2+
import path from 'path';
3+
import HtmlWebpackPlugin from 'html-webpack-plugin';
4+
5+
const __dirname = path.dirname(fileURLToPath(import.meta.url));
6+
7+
/** @type {import('./node_modules/@types/webpack').Configuration} */
8+
export default {
9+
mode: 'development',
10+
entry: './src/index.js',
11+
output: {
12+
filename: 'bundle.js',
13+
path: path.resolve(__dirname, 'dist'),
14+
},
15+
resolve: {
16+
alias: {
17+
// Webpack 4 doesn't support package.json exports field, so we need to manually map the browser-http subpath
18+
'@opentelemetry/otlp-exporter-base/browser-http':
19+
'@opentelemetry/otlp-exporter-base/build/esm/index-browser-http.js',
20+
},
21+
},
22+
module: {
23+
rules: [
24+
{
25+
test: /\.(?:js|mjs|cjs)$/,
26+
// Include OpenTelemetry ES2022 packages for transpilation
27+
exclude: /node_modules\/(?!@opentelemetry)/,
28+
use: {
29+
loader: 'babel-loader',
30+
options: {
31+
presets: [['@babel/preset-env']],
32+
},
33+
},
34+
},
35+
],
36+
},
37+
devServer: {
38+
static: {
39+
directory: path.resolve(__dirname, 'dist/'),
40+
},
41+
},
42+
plugins: [
43+
new HtmlWebpackPlugin({
44+
title: 'Development',
45+
template: 'index.html',
46+
}),
47+
],
48+
};
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
package-lock=false
2+
install-links=false

0 commit comments

Comments
 (0)