npm / cli

the package manager for JavaScript
https://docs.npmjs.com/cli/
Other
8.48k stars 3.17k forks source link

[BUG] Can't install library with peerDependencies and devDependencies #3849

Closed brandones closed 3 years ago

brandones commented 3 years ago

Is there an existing issue for this?

Current Behavior

It isn't possible to install the library @openmrs/esm-framework@next in npm 7.20.3+.

npm install --save-dev @openmrs/esm-framework@next --verbose --loglevel silly

In 7.20.3 through 7.24.1 we get an infinite loop repeating these lines:

npm sill placeDep ROOT single-spa@5.9.3 REPLACE for: @openmrs/esm-extensions@3.1.10-pre.585 want: 5.x
npm timing idealTree:node_modules/@openmrs/esm-extensions Completed in 1ms
npm sill placeDep ROOT single-spa@4.4.4 REPLACE for: @openmrs/esm-config@3.1.9 want: 4.x
npm timing idealTree:node_modules/@openmrs/esm-config Completed in 0ms

In 7.24.2 we get the output here on pastebin, concluding with

npm verb type range
npm verb stack @openmrs/esm-state: No matching version found for @openmrs/esm-state@3.x.
npm verb stack     at module.exports (/home/brandon/.nvm/versions/node/v16.2.0/lib/node_modules/npm/node_modules/npm-pick-manifest/index.js:209:23)

Possibly related to https://github.com/npm/cli/issues/3702, https://github.com/npm/cli/issues/3666, and https://github.com/npm/cli/issues/3616.

Expected Behavior

Install is successful with npm 7.20.2, concluding with

...
npm sill ADD node_modules/@openmrs/esm-styleguide
npm sill ADD node_modules/@openmrs/esm-offline
npm sill ADD node_modules/@openmrs/esm-extensions
npm sill ADD node_modules/@openmrs/esm-breadcrumbs
npm sill ADD node_modules/@openmrs/esm-error-handling
npm sill ADD node_modules/systemjs
npm sill ADD node_modules/single-spa
npm sill ADD node_modules/@openmrs/esm-state
npm sill ADD node_modules/@openmrs/esm-globals
npm sill ADD node_modules/@openmrs/esm-config
npm sill ADD node_modules/@openmrs/esm-api
npm sill ADD node_modules/@openmrs/esm-framework

added 306 packages, and audited 307 packages in 18s

Steps To Reproduce

npm install -g npm@7.24.2
mkdir bug-test
cd bug-test
npm init
npm install --save-dev @openmrs/esm-framework@next --verbose --loglevel silly

Environment

lukekarrys commented 3 years ago

Thanks for the thorough report @brandones!

Adding a bit more information from triaging this. In 7.20.2 the install completes but npm ls reports the errors below, saying that the peerDependency ranges of 3.x don't match the versions 3.1.10-pre.585 which is correct according to the spec.

Then in 7.20.3 this behavior was changed so that the tree wouldn't install by default in those cases and would report peerDependency conflicts (which could be overridden with --force), but the infinite loop (#3616) was triggered by some of these unresolvable peerDependency ranges. This was fixed in 7.24.2, so now the correct behavior is happening.

In this specific case, packages like @openmrs/esm-breadcrumbs@^3.1.10-pre.585 are setting peerDependency ranges like @openmrs/esm-state@3.x which doesn't exist on the registry. I confirmed this with npm view @openmrs/esm-state@3.x version. If I run it without the 3.x it shows all the prerelease versions but none of those are satisfied by 3.x. Note, that other peerDependencies in the tree like @openmrs/esm-config@3.x do have satisfying versions published to the registry.

As a side note, I'm not sure why in 7.20.2 the peerDependency range of @openmrs/esm-state@3.x doesn't trigger the same ETARGET error.

As a fix, I think changing your peerDependency ranges to 3.x || >=3.1.10-pre will work.

7.20.2 npm ls ``` ❯ npm ls --depth=10000 3849@1.0.0 /Users/lukekarrys/Desktop/npm-sandbox/3849 └─┬ @openmrs/esm-framework@3.1.10-pre.585 ├─┬ @openmrs/esm-api@3.1.10-pre.585 │ ├── @openmrs/esm-config@3.1.10-pre.585 deduped invalid: "3.x" from node_modules/@openmrs/esm-api │ ├── @openmrs/esm-error-handling@3.1.10-pre.585 deduped invalid: "3.x" from node_modules/@openmrs/esm-api │ ├─┬ fhir.js@0.0.22 │ │ ├── @types/fhir@0.0.30 │ │ ├── Base64@0.3.0 │ │ ├── merge@1.2.1 │ │ ├── q@1.5.1 │ │ └─┬ request@2.88.2 │ │ ├── aws-sign2@0.7.0 │ │ ├── aws4@1.11.0 │ │ ├── caseless@0.12.0 │ │ ├─┬ combined-stream@1.0.8 │ │ │ └── delayed-stream@1.0.0 │ │ ├── extend@3.0.2 │ │ ├── forever-agent@0.6.1 │ │ ├─┬ form-data@2.3.3 │ │ │ ├── asynckit@0.4.0 │ │ │ ├── combined-stream@1.0.8 deduped │ │ │ └── mime-types@2.1.33 deduped │ │ ├─┬ har-validator@5.1.5 │ │ │ ├─┬ ajv@6.12.6 │ │ │ │ ├── fast-deep-equal@3.1.3 │ │ │ │ ├── fast-json-stable-stringify@2.1.0 │ │ │ │ ├── json-schema-traverse@0.4.1 │ │ │ │ └─┬ uri-js@4.4.1 │ │ │ │ └── punycode@2.1.1 deduped │ │ │ └── har-schema@2.0.0 │ │ ├─┬ http-signature@1.2.0 │ │ │ ├── assert-plus@1.0.0 │ │ │ ├─┬ jsprim@1.4.1 │ │ │ │ ├── assert-plus@1.0.0 deduped │ │ │ │ ├── extsprintf@1.3.0 │ │ │ │ ├── json-schema@0.2.3 │ │ │ │ └─┬ verror@1.10.0 │ │ │ │ ├── assert-plus@1.0.0 deduped │ │ │ │ ├── core-util-is@1.0.2 │ │ │ │ └── extsprintf@1.3.0 deduped │ │ │ └─┬ sshpk@1.16.1 │ │ │ ├─┬ asn1@0.2.4 │ │ │ │ └── safer-buffer@2.1.2 deduped │ │ │ ├── assert-plus@1.0.0 deduped │ │ │ ├─┬ bcrypt-pbkdf@1.0.2 │ │ │ │ └── tweetnacl@0.14.5 deduped │ │ │ ├─┬ dashdash@1.14.1 │ │ │ │ └── assert-plus@1.0.0 deduped │ │ │ ├─┬ ecc-jsbn@0.1.2 │ │ │ │ ├── jsbn@0.1.1 deduped │ │ │ │ └── safer-buffer@2.1.2 deduped │ │ │ ├─┬ getpass@0.1.7 │ │ │ │ └── assert-plus@1.0.0 deduped │ │ │ ├── jsbn@0.1.1 │ │ │ ├── safer-buffer@2.1.2 │ │ │ └── tweetnacl@0.14.5 │ │ ├── is-typedarray@1.0.0 │ │ ├── isstream@0.1.2 │ │ ├── json-stringify-safe@5.0.1 │ │ ├─┬ mime-types@2.1.33 │ │ │ └── mime-db@1.50.0 │ │ ├── oauth-sign@0.9.0 │ │ ├── performance-now@2.1.0 │ │ ├── qs@6.5.2 │ │ ├── safe-buffer@5.2.1 │ │ ├─┬ tough-cookie@2.5.0 │ │ │ ├── psl@1.8.0 │ │ │ └── punycode@2.1.1 │ │ ├─┬ tunnel-agent@0.6.0 │ │ │ └── safe-buffer@5.2.1 deduped │ │ └── uuid@3.4.0 │ └── lodash-es@4.17.21 ├─┬ @openmrs/esm-breadcrumbs@3.1.10-pre.585 │ ├── @openmrs/esm-state@3.1.10-pre.585 deduped invalid: "3.x" from node_modules/@openmrs/esm-breadcrumbs │ └── path-to-regexp@6.1.0 ├─┬ @openmrs/esm-config@3.1.10-pre.585 invalid: "3.x" from node_modules/@openmrs/esm-api │ ├── @openmrs/esm-globals@3.1.10-pre.585 deduped invalid: "3.x" from node_modules/@openmrs/esm-config │ ├── @openmrs/esm-state@3.1.10-pre.585 deduped invalid: "3.x" from node_modules/@openmrs/esm-breadcrumbs, "3.x" from node_modules/@openmrs/esm-config │ ├── ramda@0.26.1 │ ├── single-spa@5.9.3 │ └── systemjs@6.10.3 ├─┬ @openmrs/esm-error-handling@3.1.10-pre.585 invalid: "3.x" from node_modules/@openmrs/esm-api │ └── @openmrs/esm-globals@3.1.10-pre.585 deduped invalid: "3.x" from node_modules/@openmrs/esm-config, "3.x" from node_modules/@openmrs/esm-error-handling ├─┬ @openmrs/esm-extensions@3.1.10-pre.585 │ ├── @openmrs/esm-api@3.1.10-pre.585 deduped invalid: "3.x" from node_modules/@openmrs/esm-extensions │ ├── @openmrs/esm-config@3.1.10-pre.585 deduped invalid: "3.x" from node_modules/@openmrs/esm-api, "3.x" from node_modules/@openmrs/esm-extensions │ ├── @openmrs/esm-state@3.1.10-pre.585 deduped invalid: "3.x" from node_modules/@openmrs/esm-breadcrumbs, "3.x" from node_modules/@openmrs/esm-config, "3.x" from node_modules/@openmrs/esm-extensions │ └── single-spa@5.9.3 deduped ├── @openmrs/esm-globals@3.1.10-pre.585 invalid: "3.x" from node_modules/@openmrs/esm-config, "3.x" from node_modules/@openmrs/esm-error-handling ├─┬ @openmrs/esm-offline@3.1.10-pre.585 │ ├── @openmrs/esm-api@3.1.10-pre.585 deduped invalid: "3.x" from node_modules/@openmrs/esm-extensions, "3.x" from node_modules/@openmrs/esm-offline │ ├── @openmrs/esm-globals@3.1.10-pre.585 deduped invalid: "3.x" from node_modules/@openmrs/esm-config, "3.x" from node_modules/@openmrs/esm-error-handling, "3.x" from node_modules/@openmrs/esm-offline │ ├── @openmrs/esm-state@3.1.10-pre.585 deduped invalid: "3.x" from node_modules/@openmrs/esm-breadcrumbs, "3.x" from node_modules/@openmrs/esm-config, "3.x" from node_modules/@openmrs/esm-extensions, "3.x" from node_modules/@openmrs/esm-offline │ ├── @openmrs/esm-styleguide@3.1.10-pre.585 deduped invalid: "3.x" from node_modules/@openmrs/esm-offline │ ├── dexie@3.0.3 │ ├── lodash-es@4.17.21 deduped │ ├─┬ rxjs@6.6.7 │ │ └── tslib@1.14.1 │ ├── uuid@8.3.2 │ └─┬ workbox-window@6.3.0 │ ├── @types/trusted-types@2.0.2 │ └── workbox-core@6.3.0 ├─┬ @openmrs/esm-react-utils@3.1.10-pre.585 │ ├── @openmrs/esm-api@3.1.10-pre.585 deduped invalid: "3.x" from node_modules/@openmrs/esm-extensions, "3.x" from node_modules/@openmrs/esm-offline, "3.x" from node_modules/@openmrs/esm-react-utils │ ├── @openmrs/esm-config@3.1.10-pre.585 deduped invalid: "3.x" from node_modules/@openmrs/esm-api, "3.x" from node_modules/@openmrs/esm-extensions, "3.x" from node_modules/@openmrs/esm-react-utils │ ├── @openmrs/esm-error-handling@3.1.10-pre.585 deduped invalid: "3.x" from node_modules/@openmrs/esm-api, "3.x" from node_modules/@openmrs/esm-react-utils │ ├── @openmrs/esm-extensions@3.1.10-pre.585 deduped invalid: "3.x" from node_modules/@openmrs/esm-react-utils │ ├── @openmrs/esm-globals@3.1.10-pre.585 deduped invalid: "3.x" from node_modules/@openmrs/esm-config, "3.x" from node_modules/@openmrs/esm-error-handling, "3.x" from node_modules/@openmrs/esm-offline, "3.x" from node_modules/@openmrs/esm-react-utils │ ├─┬ i18next@19.9.2 │ │ └─┬ @babel/runtime@7.15.4 │ │ └── regenerator-runtime@0.13.9 │ ├── lodash-es@4.17.21 deduped │ ├─┬ react-dom@16.14.0 │ │ ├─┬ loose-envify@1.4.0 │ │ │ └── js-tokens@4.0.0 │ │ ├── object-assign@4.1.1 │ │ ├─┬ prop-types@15.7.2 │ │ │ ├── loose-envify@1.4.0 deduped │ │ │ ├── object-assign@4.1.1 deduped │ │ │ └── react-is@16.13.1 deduped │ │ ├── react@16.14.0 deduped │ │ └─┬ scheduler@0.19.1 │ │ ├── loose-envify@1.4.0 deduped │ │ └── object-assign@4.1.1 deduped │ ├─┬ react-i18next@11.12.0 │ │ ├── @babel/runtime@7.15.4 deduped │ │ ├─┬ html-parse-stringify@3.0.1 │ │ │ └── void-elements@3.1.0 │ │ ├── i18next@19.9.2 deduped │ │ └── react@16.14.0 deduped │ ├─┬ react@16.14.0 │ │ ├── loose-envify@1.4.0 deduped │ │ ├── object-assign@4.1.1 deduped │ │ └── prop-types@15.7.2 deduped │ └─┬ single-spa-react@4.4.0 │ ├─┬ @types/react-dom@17.0.9 │ │ └── @types/react@17.0.27 deduped │ ├─┬ @types/react@17.0.27 │ │ ├── @types/prop-types@15.7.4 │ │ ├── @types/scheduler@0.16.2 │ │ └── csstype@3.0.9 │ └── react@16.14.0 deduped ├─┬ @openmrs/esm-state@3.1.10-pre.585 invalid: "3.x" from node_modules/@openmrs/esm-breadcrumbs, "3.x" from node_modules/@openmrs/esm-config, "3.x" from node_modules/@openmrs/esm-extensions, "3.x" from node_modules/@openmrs/esm-offline │ └── unistore@3.5.2 ├─┬ @openmrs/esm-styleguide@3.1.10-pre.585 invalid: "3.x" from node_modules/@openmrs/esm-offline │ ├─┬ @carbon/charts@0.41.103 │ │ ├── @carbon/colors@10.29.0 │ │ ├─┬ @carbon/telemetry@0.0.0-alpha.6 │ │ │ ├── @babel/parser@7.15.8 │ │ │ ├─┬ @babel/traverse@7.15.4 │ │ │ │ ├─┬ @babel/code-frame@7.15.8 │ │ │ │ │ └─┬ @babel/highlight@7.14.5 │ │ │ │ │ ├── @babel/helper-validator-identifier@7.15.7 deduped │ │ │ │ │ ├─┬ chalk@2.4.2 │ │ │ │ │ │ ├─┬ ansi-styles@3.2.1 │ │ │ │ │ │ │ └── color-convert@1.9.3 deduped │ │ │ │ │ │ ├── escape-string-regexp@1.0.5 │ │ │ │ │ │ └─┬ supports-color@5.5.0 │ │ │ │ │ │ └── has-flag@3.0.0 │ │ │ │ │ └── js-tokens@4.0.0 deduped │ │ │ │ ├─┬ @babel/generator@7.15.8 │ │ │ │ │ ├── @babel/types@7.15.6 deduped │ │ │ │ │ ├── jsesc@2.5.2 │ │ │ │ │ └── source-map@0.5.7 │ │ │ │ ├─┬ @babel/helper-function-name@7.15.4 │ │ │ │ │ ├─┬ @babel/helper-get-function-arity@7.15.4 │ │ │ │ │ │ └── @babel/types@7.15.6 deduped │ │ │ │ │ ├─┬ @babel/template@7.15.4 │ │ │ │ │ │ ├── @babel/code-frame@7.15.8 deduped │ │ │ │ │ │ ├── @babel/parser@7.15.8 deduped │ │ │ │ │ │ └── @babel/types@7.15.6 deduped │ │ │ │ │ └── @babel/types@7.15.6 deduped │ │ │ │ ├─┬ @babel/helper-hoist-variables@7.15.4 │ │ │ │ │ └── @babel/types@7.15.6 deduped │ │ │ │ ├─┬ @babel/helper-split-export-declaration@7.15.4 │ │ │ │ │ └── @babel/types@7.15.6 deduped │ │ │ │ ├── @babel/parser@7.15.8 deduped │ │ │ │ ├─┬ @babel/types@7.15.6 │ │ │ │ │ ├── @babel/helper-validator-identifier@7.15.7 │ │ │ │ │ └── to-fast-properties@2.0.0 │ │ │ │ ├─┬ debug@4.3.2 │ │ │ │ │ └── ms@2.1.2 │ │ │ │ └── globals@11.12.0 │ │ │ ├── ci-info@2.0.0 │ │ │ ├─┬ configstore@5.0.1 │ │ │ │ ├─┬ dot-prop@5.3.0 │ │ │ │ │ └── is-obj@2.0.0 │ │ │ │ ├── graceful-fs@4.2.8 │ │ │ │ ├─┬ make-dir@3.1.0 │ │ │ │ │ └── semver@6.3.0 │ │ │ │ ├─┬ unique-string@2.0.0 │ │ │ │ │ └── crypto-random-string@2.0.0 │ │ │ │ ├─┬ write-file-atomic@3.0.3 │ │ │ │ │ ├── imurmurhash@0.1.4 │ │ │ │ │ ├── is-typedarray@1.0.0 deduped │ │ │ │ │ ├── signal-exit@3.0.5 │ │ │ │ │ └─┬ typedarray-to-buffer@3.1.5 │ │ │ │ │ └── is-typedarray@1.0.0 deduped │ │ │ │ └── xdg-basedir@4.0.0 │ │ │ ├─┬ fast-glob@3.2.7 │ │ │ │ ├── @nodelib/fs.stat@2.0.5 │ │ │ │ ├─┬ @nodelib/fs.walk@1.2.8 │ │ │ │ │ ├─┬ @nodelib/fs.scandir@2.1.5 │ │ │ │ │ │ ├── @nodelib/fs.stat@2.0.5 deduped │ │ │ │ │ │ └─┬ run-parallel@1.2.0 │ │ │ │ │ │ └── queue-microtask@1.2.3 │ │ │ │ │ └─┬ fastq@1.13.0 │ │ │ │ │ └── reusify@1.0.4 │ │ │ │ ├─┬ glob-parent@5.1.2 │ │ │ │ │ └─┬ is-glob@4.0.3 │ │ │ │ │ └── is-extglob@2.1.1 │ │ │ │ ├── merge2@1.4.1 │ │ │ │ └─┬ micromatch@4.0.4 │ │ │ │ ├─┬ braces@3.0.2 │ │ │ │ │ └─┬ fill-range@7.0.1 │ │ │ │ │ └─┬ to-regex-range@5.0.1 │ │ │ │ │ └── is-number@7.0.0 │ │ │ │ └── picomatch@2.3.0 │ │ │ ├─┬ fs-extra@9.1.0 │ │ │ │ ├── at-least-node@1.0.0 │ │ │ │ ├── graceful-fs@4.2.8 deduped │ │ │ │ ├─┬ jsonfile@6.1.0 │ │ │ │ │ ├── graceful-fs@4.2.8 deduped │ │ │ │ │ └── universalify@2.0.0 deduped │ │ │ │ └── universalify@2.0.0 │ │ │ ├─┬ got@11.8.2 │ │ │ │ ├── @sindresorhus/is@4.2.0 │ │ │ │ ├─┬ @szmarczak/http-timer@4.0.6 │ │ │ │ │ └── defer-to-connect@2.0.1 │ │ │ │ ├─┬ @types/cacheable-request@6.0.2 │ │ │ │ │ ├── @types/http-cache-semantics@4.0.1 │ │ │ │ │ ├─┬ @types/keyv@3.1.3 │ │ │ │ │ │ └── @types/node@16.10.3 deduped │ │ │ │ │ ├── @types/node@16.10.3 │ │ │ │ │ └── @types/responselike@1.0.0 deduped │ │ │ │ ├─┬ @types/responselike@1.0.0 │ │ │ │ │ └── @types/node@16.10.3 deduped │ │ │ │ ├── cacheable-lookup@5.0.4 │ │ │ │ ├─┬ cacheable-request@7.0.2 │ │ │ │ │ ├─┬ clone-response@1.0.2 │ │ │ │ │ │ └── mimic-response@1.0.1 │ │ │ │ │ ├─┬ get-stream@5.2.0 │ │ │ │ │ │ └─┬ pump@3.0.0 │ │ │ │ │ │ ├─┬ end-of-stream@1.4.4 │ │ │ │ │ │ │ └── once@1.4.0 deduped │ │ │ │ │ │ └─┬ once@1.4.0 │ │ │ │ │ │ └── wrappy@1.0.2 │ │ │ │ │ ├── http-cache-semantics@4.1.0 │ │ │ │ │ ├─┬ keyv@4.0.3 │ │ │ │ │ │ └── json-buffer@3.0.1 │ │ │ │ │ ├── lowercase-keys@2.0.0 deduped │ │ │ │ │ ├── normalize-url@6.1.0 │ │ │ │ │ └── responselike@2.0.0 deduped │ │ │ │ ├─┬ decompress-response@6.0.0 │ │ │ │ │ └── mimic-response@3.1.0 │ │ │ │ ├─┬ http2-wrapper@1.0.3 │ │ │ │ │ ├── quick-lru@5.1.1 │ │ │ │ │ └── resolve-alpn@1.2.1 │ │ │ │ ├── lowercase-keys@2.0.0 │ │ │ │ ├── p-cancelable@2.1.1 │ │ │ │ └─┬ responselike@2.0.0 │ │ │ │ └── lowercase-keys@2.0.0 deduped │ │ │ ├── semver@7.3.5 deduped │ │ │ ├─┬ winston@3.3.3 │ │ │ │ ├─┬ @dabh/diagnostics@2.0.2 │ │ │ │ │ ├─┬ colorspace@1.1.2 │ │ │ │ │ │ ├─┬ color@3.0.0 │ │ │ │ │ │ │ ├─┬ color-convert@1.9.3 │ │ │ │ │ │ │ │ └── color-name@1.1.3 │ │ │ │ │ │ │ └─┬ color-string@1.6.0 │ │ │ │ │ │ │ ├── color-name@1.1.3 deduped │ │ │ │ │ │ │ └─┬ simple-swizzle@0.2.2 │ │ │ │ │ │ │ └── is-arrayish@0.3.2 │ │ │ │ │ │ └── text-hex@1.0.0 │ │ │ │ │ ├── enabled@2.0.0 │ │ │ │ │ └── kuler@2.0.0 │ │ │ │ ├── async@3.2.1 │ │ │ │ ├── is-stream@2.0.1 │ │ │ │ ├─┬ logform@2.3.0 │ │ │ │ │ ├── colors@1.4.0 │ │ │ │ │ ├── fecha@4.2.1 │ │ │ │ │ ├── ms@2.1.2 deduped │ │ │ │ │ ├── safe-stable-stringify@1.1.1 │ │ │ │ │ └── triple-beam@1.3.0 deduped │ │ │ │ ├─┬ one-time@1.0.0 │ │ │ │ │ └── fn.name@1.1.0 │ │ │ │ ├─┬ readable-stream@3.6.0 │ │ │ │ │ ├── inherits@2.0.4 │ │ │ │ │ ├─┬ string_decoder@1.3.0 │ │ │ │ │ │ └── safe-buffer@5.2.1 deduped │ │ │ │ │ └── util-deprecate@1.0.2 │ │ │ │ ├── stack-trace@0.0.10 │ │ │ │ ├── triple-beam@1.3.0 │ │ │ │ └─┬ winston-transport@4.4.0 │ │ │ │ ├─┬ readable-stream@2.3.7 │ │ │ │ │ ├── core-util-is@1.0.2 deduped │ │ │ │ │ ├── inherits@2.0.4 deduped │ │ │ │ │ ├── isarray@1.0.0 │ │ │ │ │ ├── process-nextick-args@2.0.1 │ │ │ │ │ ├── safe-buffer@5.1.2 │ │ │ │ │ ├─┬ string_decoder@1.1.1 │ │ │ │ │ │ └── safe-buffer@5.1.2 deduped │ │ │ │ │ └── util-deprecate@1.0.2 deduped │ │ │ │ └── triple-beam@1.3.0 deduped │ │ │ └─┬ yargs@16.2.0 │ │ │ ├─┬ cliui@7.0.4 │ │ │ │ ├── string-width@4.2.3 deduped │ │ │ │ ├─┬ strip-ansi@6.0.1 │ │ │ │ │ └── ansi-regex@5.0.1 │ │ │ │ └─┬ wrap-ansi@7.0.0 │ │ │ │ ├─┬ ansi-styles@4.3.0 │ │ │ │ │ └─┬ color-convert@2.0.1 │ │ │ │ │ └── color-name@1.1.4 │ │ │ │ ├── string-width@4.2.3 deduped │ │ │ │ └── strip-ansi@6.0.1 deduped │ │ │ ├── escalade@3.1.1 │ │ │ ├── get-caller-file@2.0.5 │ │ │ ├── require-directory@2.1.1 │ │ │ ├─┬ string-width@4.2.3 │ │ │ │ ├── emoji-regex@8.0.0 │ │ │ │ ├── is-fullwidth-code-point@3.0.0 │ │ │ │ └── strip-ansi@6.0.1 deduped │ │ │ ├── y18n@5.0.8 │ │ │ └── yargs-parser@20.2.9 │ │ ├── @carbon/utils-position@1.1.1 │ │ ├─┬ carbon-components@10.40.0 │ │ │ ├── @carbon/telemetry@0.0.0-alpha.6 deduped │ │ │ ├── flatpickr@4.6.1 deduped │ │ │ ├── lodash.debounce@4.0.8 deduped │ │ │ └── warning@3.0.0 deduped │ │ ├─┬ d3-cloud@1.2.5 │ │ │ └── d3-dispatch@1.0.6 │ │ ├─┬ d3@7.1.1 │ │ │ ├─┬ d3-array@3.1.1 │ │ │ │ └── internmap@2.0.3 │ │ │ ├── d3-axis@3.0.0 │ │ │ ├─┬ d3-brush@3.0.0 │ │ │ │ ├── d3-dispatch@3.0.1 deduped │ │ │ │ ├── d3-drag@3.0.0 deduped │ │ │ │ ├── d3-interpolate@3.0.1 deduped │ │ │ │ ├── d3-selection@3.0.0 deduped │ │ │ │ └── d3-transition@3.0.1 deduped │ │ │ ├─┬ d3-chord@3.0.1 │ │ │ │ └── d3-path@3.0.1 deduped │ │ │ ├── d3-color@3.0.1 │ │ │ ├─┬ d3-contour@3.0.1 │ │ │ │ └── d3-array@3.1.1 deduped │ │ │ ├─┬ d3-delaunay@6.0.2 │ │ │ │ └─┬ delaunator@5.0.0 │ │ │ │ └── robust-predicates@3.0.1 │ │ │ ├── d3-dispatch@3.0.1 │ │ │ ├─┬ d3-drag@3.0.0 │ │ │ │ ├── d3-dispatch@3.0.1 deduped │ │ │ │ └── d3-selection@3.0.0 deduped │ │ │ ├─┬ d3-dsv@3.0.1 │ │ │ │ ├── commander@7.2.0 │ │ │ │ ├─┬ iconv-lite@0.6.3 │ │ │ │ │ └── safer-buffer@2.1.2 deduped │ │ │ │ └── rw@1.3.3 │ │ │ ├── d3-ease@3.0.1 │ │ │ ├─┬ d3-fetch@3.0.1 │ │ │ │ └── d3-dsv@3.0.1 deduped │ │ │ ├─┬ d3-force@3.0.0 │ │ │ │ ├── d3-dispatch@3.0.1 deduped │ │ │ │ ├── d3-quadtree@3.0.1 deduped │ │ │ │ └── d3-timer@3.0.1 deduped │ │ │ ├── d3-format@3.0.1 │ │ │ ├─┬ d3-geo@3.0.1 │ │ │ │ └── d3-array@3.1.1 deduped │ │ │ ├── d3-hierarchy@3.0.1 │ │ │ ├─┬ d3-interpolate@3.0.1 │ │ │ │ └── d3-color@3.0.1 deduped │ │ │ ├── d3-path@3.0.1 │ │ │ ├── d3-polygon@3.0.1 │ │ │ ├── d3-quadtree@3.0.1 │ │ │ ├── d3-random@3.0.1 │ │ │ ├─┬ d3-scale-chromatic@3.0.0 │ │ │ │ ├── d3-color@3.0.1 deduped │ │ │ │ └── d3-interpolate@3.0.1 deduped │ │ │ ├─┬ d3-scale@4.0.2 │ │ │ │ ├── d3-array@3.1.1 deduped │ │ │ │ ├── d3-format@3.0.1 deduped │ │ │ │ ├── d3-interpolate@3.0.1 deduped │ │ │ │ ├── d3-time-format@4.0.0 deduped │ │ │ │ └── d3-time@3.0.0 deduped │ │ │ ├── d3-selection@3.0.0 │ │ │ ├─┬ d3-shape@3.0.1 │ │ │ │ └── d3-path@3.0.1 deduped │ │ │ ├─┬ d3-time-format@4.0.0 │ │ │ │ └── d3-time@3.0.0 deduped │ │ │ ├─┬ d3-time@3.0.0 │ │ │ │ └── d3-array@3.1.1 deduped │ │ │ ├── d3-timer@3.0.1 │ │ │ ├─┬ d3-transition@3.0.1 │ │ │ │ ├── d3-color@3.0.1 deduped │ │ │ │ ├── d3-dispatch@3.0.1 deduped │ │ │ │ ├── d3-ease@3.0.1 deduped │ │ │ │ ├── d3-interpolate@3.0.1 deduped │ │ │ │ ├── d3-selection@3.0.0 deduped │ │ │ │ └── d3-timer@3.0.1 deduped │ │ │ └─┬ d3-zoom@3.0.0 │ │ │ ├── d3-dispatch@3.0.1 deduped │ │ │ ├── d3-drag@3.0.0 deduped │ │ │ ├── d3-interpolate@3.0.1 deduped │ │ │ ├── d3-selection@3.0.0 deduped │ │ │ └── d3-transition@3.0.1 deduped │ │ ├── date-fns@2.8.1 │ │ ├── dom-to-image@2.6.0 │ │ ├── lodash-es@4.17.21 deduped │ │ └── resize-observer-polyfill@1.5.0 │ ├── @openmrs/esm-extensions@3.1.10-pre.585 deduped invalid: "3.x" from node_modules/@openmrs/esm-react-utils, "3.x" from node_modules/@openmrs/esm-styleguide │ ├─┬ carbon-components-react@7.31.0 │ │ ├── @carbon/feature-flags@0.2.0 │ │ ├─┬ @carbon/icons-react@10.40.0 │ │ │ ├── @carbon/icon-helpers@10.24.0 │ │ │ ├── @carbon/telemetry@0.0.0-alpha.6 deduped │ │ │ ├── prop-types@15.7.2 deduped │ │ │ └── react@16.14.0 deduped │ │ ├── @carbon/telemetry@0.0.0-alpha.6 deduped │ │ ├── carbon-components@10.45.0 deduped │ │ ├── carbon-icons@7.0.7 deduped │ │ ├── classnames@2.2.6 │ │ ├─┬ downshift@5.2.1 │ │ │ ├── @babel/runtime@7.15.4 deduped │ │ │ ├── compute-scroll-into-view@1.0.17 │ │ │ ├── prop-types@15.7.2 deduped │ │ │ ├── react-is@16.13.1 deduped │ │ │ └── react@16.14.0 deduped │ │ ├── flatpickr@4.6.9 │ │ ├─┬ invariant@2.2.4 │ │ │ └── loose-envify@1.4.0 deduped │ │ ├── lodash.debounce@4.0.8 │ │ ├── lodash.findlast@4.6.0 │ │ ├── lodash.isequal@4.5.0 │ │ ├── lodash.omit@4.5.0 │ │ ├── lodash.throttle@4.1.1 │ │ ├── react-dom@16.14.0 deduped │ │ ├── react-is@16.13.1 │ │ ├── react@16.14.0 deduped │ │ ├─┬ use-resize-observer@6.1.0 │ │ │ ├── react-dom@16.14.0 deduped │ │ │ ├── react@16.14.0 deduped │ │ │ └── resize-observer-polyfill@1.5.1 │ │ └── window-or-global@1.0.1 │ ├─┬ carbon-components@10.45.0 │ │ ├── @carbon/telemetry@0.0.0-alpha.6 deduped │ │ ├── flatpickr@4.6.1 │ │ ├── lodash.debounce@4.0.8 deduped │ │ └─┬ warning@3.0.0 │ │ └── loose-envify@1.4.0 deduped │ ├── carbon-icons@7.0.7 │ ├── lodash-es@4.17.21 deduped │ ├── react-dom@16.14.0 deduped │ ├── react@16.14.0 deduped │ └── rxjs@6.6.7 deduped └─┬ @openmrs/esm-utils@3.1.10-pre.585 ├── dayjs@1.10.7 ├── rxjs@6.6.7 deduped └─┬ semver@7.3.5 └─┬ lru-cache@6.0.0 └── yallist@4.0.0 npm ERR! code ELSPROBLEMS npm ERR! invalid: @openmrs/esm-config@3.1.10-pre.585 /Users/lukekarrys/Desktop/npm-sandbox/3849/node_modules/@openmrs/esm-config npm ERR! invalid: @openmrs/esm-error-handling@3.1.10-pre.585 /Users/lukekarrys/Desktop/npm-sandbox/3849/node_modules/@openmrs/esm-error-handling npm ERR! invalid: @openmrs/esm-globals@3.1.10-pre.585 /Users/lukekarrys/Desktop/npm-sandbox/3849/node_modules/@openmrs/esm-globals npm ERR! invalid: @openmrs/esm-state@3.1.10-pre.585 /Users/lukekarrys/Desktop/npm-sandbox/3849/node_modules/@openmrs/esm-state npm ERR! invalid: @openmrs/esm-styleguide@3.1.10-pre.585 /Users/lukekarrys/Desktop/npm-sandbox/3849/node_modules/@openmrs/esm-styleguide npm ERR! invalid: @openmrs/esm-api@3.1.10-pre.585 /Users/lukekarrys/Desktop/npm-sandbox/3849/node_modules/@openmrs/esm-api npm ERR! invalid: @openmrs/esm-extensions@3.1.10-pre.585 /Users/lukekarrys/Desktop/npm-sandbox/3849/node_modules/@openmrs/esm-extensions npm ERR! A complete log of this run can be found in: npm ERR! /Users/lukekarrys/.npm/_logs/2021-10-07T19_06_44_392Z-debug.log ```
brandones commented 3 years ago

That makes sense. Thank you very much for the thorough explanation!