generator-jhipster: Running jhipster command throws Error [ERR_PACKAGE_PATH_NOT_EXPORTED]

Overview of the issue

Running jhipster command throws Error [ERR_PACKAGE_PATH_NOT_EXPORTED]

Below the stacktrace:

➜ jhipster
INFO! Using bundled JHipster
node:internal/modules/cjs/loader:498
      throw e;
      ^

Error [ERR_PACKAGE_PATH_NOT_EXPORTED]: Package subpath './lib/util/namespace' is not defined by "exports" in /opt/homebrew/lib/node_modules/generator-jhipster/node_modules/yeoman-environment/package.json
    at new NodeError (node:internal/errors:393:5)
    at throwExportsNotFound (node:internal/modules/esm/resolve:340:9)
    at packageExportsResolve (node:internal/modules/esm/resolve:619:3)
    at resolveExports (node:internal/modules/cjs/loader:492:36)
    at Module._findPath (node:internal/modules/cjs/loader:532:31)
    at Module._resolveFilename (node:internal/modules/cjs/loader:941:27)
    at Module._load (node:internal/modules/cjs/loader:803:27)
    at Module.require (node:internal/modules/cjs/loader:1021:19)
    at require (node:internal/modules/cjs/helpers:103:18)
    at Object.<anonymous> (/opt/homebrew/lib/node_modules/generator-jhipster/utils/blueprint.js:19:25) {
  code: 'ERR_PACKAGE_PATH_NOT_EXPORTED'
}

Node.js v18.8.0
Reproduce the error

Run jhipster command

JHipster Version(s)
➜  node --version
v18.8.0
➜  npm --version
8.19.1
➜  npm ls -g generator-jhipster
/opt/homebrew/lib
└── generator-jhipster@7.9.3
Browsers and Operating System

MacOS Monterey Version 12.5.1

About this issue

  • Original URL
  • State: closed
  • Created 2 years ago
  • Reactions: 26
  • Comments: 35 (7 by maintainers)

Most upvoted comments

I could fix the problem by adding the export of “./lib/util/namespace”: “./lib/util/namespace.js” in /opt/homebrew/lib/node_modules/generator-jhipster/node_modules/yeoman-environment/package.json

  "exports": {
    ".": "./lib/environment.js",
    "./cli/": "./cli/",
    "./lib/": "./lib/",
    "./lib/util/": "./lib/util/",
    "./adapter": "./lib/adapter.js",
    "./conflicter": "./lib/util/conflicter.js",
    "./log": "./lib/util/log.js",
    "./transform": "./lib/util/transform.js",
    "./package.json": "./package.json",
    "./lib/util/namespace": "./lib/util/namespace.js"

switch to node v16. JHipster v7.9.3 is working well image

Installing from v7 git branch should work:

npm install -g jhipster/generator-jhipster#v7.x_maintenance

I was trying to reproduce this issue that doesn’t happen on Mac with Node.js 16.

With Windows 11 and Node 18, I’m able to reproduce this issue with JHipster 7.9.3:

C:\Users\mraible>jhipster
INFO! Using bundled JHipster
node:internal/modules/cjs/loader:535
      throw e;
      ^

Error [ERR_PACKAGE_PATH_NOT_EXPORTED]: Package subpath './lib/util/namespace' is not defined by "exports" in C:\Users\mraible\AppData\Roaming\npm\node_modules\generator-jhipster\node_modules\yeoman-environment\package.json
    at new NodeError (node:internal/errors:393:5)
    at throwExportsNotFound (node:internal/modules/esm/resolve:358:9)
    at packageExportsResolve (node:internal/modules/esm/resolve:668:3)
    at resolveExports (node:internal/modules/cjs/loader:529:36)
    at Module._findPath (node:internal/modules/cjs/loader:569:31)
    at Module._resolveFilename (node:internal/modules/cjs/loader:981:27)
    at Module._load (node:internal/modules/cjs/loader:841:27)
    at Module.require (node:internal/modules/cjs/loader:1061:19)
    at require (node:internal/modules/cjs/helpers:103:18)
    at Object.<anonymous> (C:\Users\mraible\AppData\Roaming\npm\node_modules\generator-jhipster\utils\blueprint.js:19:25) {
  code: 'ERR_PACKAGE_PATH_NOT_EXPORTED'
}

Node.js v18.12.1

This same error happens on Mac with Node 18. Since Node 18 is latest LTS, we should fix this in 7.9.4.

I fixed the problem by adding the export of “./lib/util/namespace”: “./lib/util/namespace.js” in /usr/local/lib/node_modules/generator-jhipster/node_modules/yeoman-environment/package.json

"exports": {
  ...
  "./lib/util/namespace": "./lib/util/namespace.js"
  }

I just fixed it by adding this entry “./lib/util/namespace”: “./lib/util/namespace.js” as related in the discussion in “exports”: { “.”: “./lib/environment.js”, “./cli/”: “./cli/”, “./lib/”: “./lib/”, “./lib/util/”: “./lib/util/”, “./adapter”: “./lib/adapter.js”, “./conflicter”: “./lib/util/conflicter.js”, “./log”: “./lib/util/log.js”, “./transform”: “./lib/util/transform.js”, “./package.json”: “./package.json”, “./lib/util/namespace”: “./lib/util/namespace.js”

I could fix the problem by adding the export of “./lib/util/namespace”: “./lib/util/namespace.js” in /opt/homebrew/lib/node_modules/generator-jhipster/node_modules/yeoman-environment/package.json

  "exports": {
    ".": "./lib/environment.js",
    "./cli/": "./cli/",
    "./lib/": "./lib/",
    "./lib/util/": "./lib/util/",
    "./adapter": "./lib/adapter.js",
    "./conflicter": "./lib/util/conflicter.js",
    "./log": "./lib/util/log.js",
    "./transform": "./lib/util/transform.js",
    "./package.json": "./package.json",
    "./lib/util/namespace": "./lib/util/namespace.js"

Thanks! Fixed it for me on Mac, Ventura with jhipster 7.9.3

I can confirm. Happend to me when upgrading from JHipster 7.8.1 to 7.9.3. But the fix from @EspA works. Thanks for posting!

My recommended workaround is to use Node 16 or wait until the next release, where Node 18.13.0+ will be supported.

Works on Ubuntu 22.10 too after adding the below line (as EspA commented)

“./lib/util/namespace”: “./lib/util/namespace.js”

into

~/.nvm/versions/node/v18.12.1/lib/node_modules/generator-jhipster/node_modules/yeoman-environment/package.json

sudo vim sudo vim /usr/lib/node_modules/generator-jhipster/node_modules/yeoman-environment/package.json

// this can be /usr/lib or /lib according to the error generated

Add

{
/"./lib/util/namespace": "./lib/util/namespace.js"
}

Hi,

Please add this line to phrase exports in jhipster/node_modules/yeoman-environment/package.json. “exports”: { …, “./lib/util/namespace”: “./lib/util/namespace.js” }

Thanks for the workaround fix from @EspA. It started working for me as well.