Skip to content

WebPack error: Critical dependency: the request of a dependency is an expression #4173

@dvoytenko

Description

@dvoytenko

What happened?

Steps to Reproduce

Running const sdk = new NodeSDK({}); sdk.start(); pops up this WebPack error:

Critical dependency: the request of a dependency is an expression

Expected Result

No error.

Actual Result

Error.

Additional Details

It appears that the error is coming from a dynamic import here:

const version = require(path.join(baseDir, 'package.json')).version;

It's even shielded by the // eslint-disable-next-line @typescript-eslint/no-var-requires.

This seems like an auxiliary function and perhaps the SDK could allow users to bypass the need to execute this dynamic require?

OpenTelemetry Setup Code

const sdk = new NodeSDK({
  resource: new Resource({}),
});
sdk.start();

package.json

{
  "name": "otel",
  "version": "0.3.0",
  "private": true,
  "type": "module",
  "scripts": {
    "type-check": "tsc --noEmit"
  },
  "dependencies": {
    "@opentelemetry/api": "^1.6.0",
    "@opentelemetry/exporter-trace-otlp-grpc": "^0.43.0",
    "@opentelemetry/exporter-trace-otlp-http": "^0.43.0",
    "@opentelemetry/exporter-trace-otlp-proto": "^0.43.0",
    "@opentelemetry/resources": "^1.17.0",
    "@opentelemetry/sdk-node": "^0.43.0",
    "@opentelemetry/sdk-trace-node": "^1.17.0",
    "@opentelemetry/semantic-conventions": "^1.17.0"
  },
  "devDependencies": {
    "@types/node": "18.15.11",
    "typescript": "5.1.3"
  }
}

Relevant log output

Critical dependency: the request of a dependency is an expression

Import trace for requested module:
../../node_modules/.pnpm/@[email protected]_@[email protected]/node_modules/@opentelemetry/instrumentation/build/src/platform/node/instrumentation.js
vercel-site:dev: ../../node_modules/.pnpm/@[email protected]_@[email protected]/node_modules/@opentelemetry/instrumentation/build/src/platform/node/index.js
vercel-site:dev: ../../node_modules/.pnpm/@[email protected]_@[email protected]/node_modules/@opentelemetry/instrumentation/build/src/platform/index.js
vercel-site:dev: ../../node_modules/.pnpm/@[email protected]_@[email protected]/node_modules/@opentelemetry/instrumentation/build/src/index.js
vercel-site:dev: ../../node_modules/.pnpm/@[email protected]_@[email protected]/node_modules/@opentelemetry/sdk-node/build/src/sdk.js
vercel-site:dev: ../../node_modules/.pnpm/@[email protected]_@[email protected]/node_modules/@opentelemetry/sdk-node/build/src/index.js
../../packages/otel/src/index.ts

Metadata

Metadata

Assignees

No one assigned

    Labels

    questionUser is asking a question not related to a new feature or bug

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions