Skip to content

[6.0] Package subpath './bin/webpack-dev-server.js' is not defined by "exports" #5714

Description

@Kocal

Have you used AI?

No

Bug Description

Hi!

We are trying to add support for webpack-dev-server@6 in Symfony Webpack Encore, but we are facing an issue when trying to run encore dev-server at await import('webpack-dev-server/bin/webpack-dev-server.js'); (https://github.com/symfony/webpack-encore/blob/519808319893f765f8d1ea7f86f81a57ed44f1e3/bin/encore.ts#L70):

Running webpack-dev-server ...

node:internal/modules/esm/resolve:313
  return new ERR_PACKAGE_PATH_NOT_EXPORTED(
         ^

Error [ERR_PACKAGE_PATH_NOT_EXPORTED]: Package subpath './bin/webpack-dev-server.js' is not defined by "exports" in /Users/kocal/workspace/kocal/sf-webpack-encore-lab/node_modules/webpack-dev-server/package.json imported from /Users/kocal/workspace/kocal/sf-webpack-encore-lab/node_modules/@symfony/webpack-encore/dist/bin/encore.js
    at exportsNotFound (node:internal/modules/esm/resolve:313:10)
    at packageExportsResolve (node:internal/modules/esm/resolve:660:9)
    at packageResolve (node:internal/modules/esm/resolve:773:12)
    at moduleResolve (node:internal/modules/esm/resolve:853:18)
    at defaultResolve (node:internal/modules/esm/resolve:983:11)
    at ModuleLoader.defaultResolve (node:internal/modules/esm/loader:783:12)
    at #cachedDefaultResolve (node:internal/modules/esm/loader:707:25)
    at ModuleLoader.resolve (node:internal/modules/esm/loader:690:38)
    at ModuleLoader.getModuleJobForImport (node:internal/modules/esm/loader:307:38)
    at onImport.tracePromise.__proto__ (node:internal/modules/esm/loader:646:36) {
  code: 'ERR_PACKAGE_PATH_NOT_EXPORTED'
}

I believe this is caused by #5674.

I can provide a patch, but I wanted to know if you are fine to add ./bin/webpack-dev-server.js in exports field? Or if there is a better alternative?

Thanks!

Link to Minimal Reproduction and step to reproduce

No need for reproducer.

Expected Behavior

We can continue to import webpack-dev-server/bin/webpack-dev-server.js as before, so flags encore dev-server [flags] are easily passed to webpack-dev-server.

Actual Behavior

The file webpack-dev-server/bin/webpack-dev-server.js is not importable, since it's not defined in exports field from package.json:

node:internal/modules/esm/resolve:313
  return new ERR_PACKAGE_PATH_NOT_EXPORTED(
         ^

Error [ERR_PACKAGE_PATH_NOT_EXPORTED]: Package subpath './bin/webpack-dev-server.js' is not defined by "exports" in /Users/kocal/workspace/kocal/sf-webpack-encore-lab/node_modules/webpack-dev-server/package.json imported from /Users/kocal/workspace/kocal/sf-webpack-encore-lab/node_modules/@symfony/webpack-encore/dist/bin/encore.js
    at exportsNotFound (node:internal/modules/esm/resolve:313:10)
    at packageExportsResolve (node:internal/modules/esm/resolve:660:9)
    at packageResolve (node:internal/modules/esm/resolve:773:12)
    at moduleResolve (node:internal/modules/esm/resolve:853:18)
    at defaultResolve (node:internal/modules/esm/resolve:983:11)
    at ModuleLoader.defaultResolve (node:internal/modules/esm/loader:783:12)
    at #cachedDefaultResolve (node:internal/modules/esm/loader:707:25)
    at ModuleLoader.resolve (node:internal/modules/esm/loader:690:38)
    at ModuleLoader.getModuleJobForImport (node:internal/modules/esm/loader:307:38)
    at onImport.tracePromise.__proto__ (node:internal/modules/esm/loader:646:36) {
  code: 'ERR_PACKAGE_PATH_NOT_EXPORTED'
}

Environment

webpack-dev-server@6 
webpack@^5.102.0 
webpack-cli@^7.0.2

Is this a regression?

Yes (please specify version below)

Last Working Version

^2.4.5 to <6

Additional Context

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions