close
Skip to content

[rush] pnpm 3.5.3 + rush 5.9.1 rush update fails to link #1347

@calebmshafer

Description

@calebmshafer

During the move to pnpm 3.5.3 and rush 5.9.1, I deleted the shrinkwrap file and ran a rush update --full --purge. It successfully makes it through the pnpm install step but fails during the linking phase and receive this error,

ERROR: Internal Error: Cannot find installed dependency "@microsoft/api-extractor" in "C:\dev\imodeljs\imodeljs\common\temp\node_modules\.local\C%3A%2Fdev%2Fimodeljs%2Fimodeljs%2Fcommon%2Ftemp%2Fprojects%2Fbuild-tools.tgz\node_modules"
You have encountered a software defect. Please consider reporting the issue to the maintainers of this application.

The actual file path that exists in the .local folder for the package is, "C:\dev\imodeljs\imodeljs\common\temp\node_modules\.local\C%3A%2Fdev%2Fimodeljs%2Fimodeljs%2Fcommon%2Ftemp%2Fprojects%2Fbuild-tools.tgz_2a665c89609864b4e75bc5365d7f8f56".

It looks like this may be related to how pnpm resolves peer dependencies, https://pnpm.js.org/docs/en/how-peers-are-resolved.html, but that's just a guess based on some of the other paths in the .local folder,

"C:\dev\imodeljs\imodeljs\common\temp\node_modules\.local\C%3A%2Fdev%2Fimodeljs%2Fimodeljs%2Fcommon%2Ftemp%2Fprojects%2Fpresentation-frontend.tgz_jsdom@11.12.0"
"C:\dev\imodeljs\imodeljs\common\temp\node_modules\.local\C%3A%2Fdev%2Fimodeljs%2Fimodeljs%2Fcommon%2Ftemp%2Fprojects%2Fpresentation-integration-tests.tgz_jsdom@11.12.0"

If you'd like to reproduce the issue, the iModel.js repo when updated to use the new rush and pnpm versions will work. I can always make a separate repro repo if needed with the updated versions.

Metadata

Metadata

Assignees

Labels

bugSomething isn't working as intendedrepro confirmedThe issue comments included repro instructions, and the maintainers reproduced the problem

Type

No type
No fields configured for issues without a type.

Projects

Status
Closed

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions