loopbackio / loopbackio/loopback-next

@loopback/build: `lb-eslint` throws "Package subpath './bin/eslint' is not defined by 'exports'" when in npm workspaces environment

Aperta
#9,703 9 commenti 3 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

bug
Lingua principale
TypeScript
Stelle
5.1k
Fork
1.1k
Merge medio
2g 21h
PR unite (30g)
27

Descrizione

Describe the bug

Running lb-eslint command from a package in npm workspaces environment throws following error:

Full Command: lb-eslint --report-unused-disable-directives .

Error [ERR_PACKAGE_PATH_NOT_EXPORTED]: Package subpath './bin/eslint' is not defined by "exports" in /Users/shubham.prajapat/repos/my-mono-repo/node_modules/eslint/package.json
Logs
loopback:build /Users/shubham.prajapat/repos/sourcefuse/loopback4-microservice-catalog/packages/cache/.eslintrc.js found +0ms
  loopback:build /Users/shubham.prajapat/repos/sourcefuse/loopback4-microservice-catalog/packages/cache/.eslintignore found +1ms
  loopback:build Trying to resolve CLI module 'eslint' from /Users/shubham.prajapat/repos/sourcefuse/loopback4-microservice-catalog/packages/cache +0ms
  loopback:build CLI module 'eslint' is not found in dependencies +0ms
node:internal/modules/cjs/loader:571
      throw e;
      ^

Error [ERR_PACKAGE_PATH_NOT_EXPORTED]: Package subpath './bin/eslint' is not defined by "exports" in /Users/shubham.prajapat/repos/sourcefuse/loopback4-microservice-catalog/node_modules/eslint/package.json
    at new NodeError (node:internal/errors:399:5)
    at exportsNotFound (node:internal/modules/esm/resolve:361:10)
    at packageExportsResolve (node:internal/modules/esm/resolve:697:9)
    at resolveExports (node:internal/modules/cjs/loader:565:36)
    at Module._findPath (node:internal/modules/cjs/loader:634:31)
    at Module._resolveFilename (node:internal/modules/cjs/loader:1061:27)
    at Function.resolve (node:internal/modules/cjs/helpers:116:19)
    at resolveCLI (/Users/shubham.prajapat/repos/sourcefuse/loopback4-microservice-catalog/node_modules/@loopback/build/bin/utils.js:76:18)
    at Object.runCLI (/Users/shubham.prajapat/repos/sourcefuse/loopback4-microservice-catalog/node_modules/@loopback/build/bin/utils.js:128:9)
    at run (/Users/shubham.prajapat/repos/sourcefuse/loopback4-microservice-catalog/node_modules/@loopback/build/bin/run-eslint.js:45:16) {
  code: 'ERR_PACKAGE_PATH_NOT_EXPORTED'
}

Node.js v18.16.0
Additional information
Screenshot 2023-06-28 at 7 13 30 PM
Reproduction

https://codesandbox.io/p/github/shubhamp-sf/eslint-17321-reproduction/main

Guida per i contributori

Apri la guida per i contributori

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Direzione di ricerca

Inizia da @loopback/build/bin/utils.js, in particolare da resolveCLI, e da bin/run-eslint.js, che compaiono nello stack trace. Esegui lb-eslint --report-unused-disable-directives . nella riproduzione collegata di npm-workspaces e verifica come viene risolto il modulo CLI. Il lavoro è completato quando il comando viene eseguito correttamente in questa configurazione del workspace senza l’errore ERR_PACKAGE_PATH_NOT_EXPORTED.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Valutazione

Stack tecnologico
eslint, nodejs, typescript
Ambito
build-system, cli, tooling
Tipo di issue
Bug
Difficoltà
3/5
Tempo stimato
1-2 giorni
Stato di attività
Ferma
Chiarezza
Abbastanza chiara
Idoneità per principianti
48/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.