question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

yarn 2 / Plug N Play Support

See original GitHub issue

Please make sure you have read the submission guidelines before posting an issue

Prerequisites

Yarn version 2.0.0-rc.27

Expected Behavior

Should work correctly like before

Current Behavior

Build failure

Failure Information (for bugs)

An unhandled exception occurred: Cannot locate the ‘node_modules’ directory. See “AppData\Local\Temp\ng-mO3oFO\angular-errors.log” for further details.

Steps to Reproduce

Please provide detailed steps for reproducing the issue.

  1. yarn dlx @yarnpkg/doctor .
  2. yarn install
  3. yarn start

Context

Yarn has finally released a usable version two. If you using webpack 4 you need to enable PlugNPlay which is native to webpack 5

https://yarnpkg.com/advanced/migration https://yarnpkg.com/advanced/pnpapi

Failure Logs

[error] Error: Cannot locate the 'node_modules' directory.
    at NgccProcessor.findNodeModulesDirectory (C:\dev\lec-migration\.yarn\$$virtual\@ngtools-webpack-virtual-9bdca6ad48\0\cache\@ngtools-webpack-npm-9.0.0-rc.10-6bfaf96715-1.zip\node_modules\@ngtools\webpack\src\ngcc_processor.js:113:15)
    at new NgccProcessor (C:\dev\lec-migration\.yarn\$$virtual\@ngtools-webpack-virtual-9bdca6ad48\0\cache\@ngtools-webpack-npm-9.0.0-rc.10-6bfaf96715-1.zip\node_modules\@ngtools\webpack\src\ngcc_processor.js:31:43)
    at C:\dev\lec-migration\.yarn\$$virtual\@ngtools-webpack-virtual-9bdca6ad48\0\cache\@ngtools-webpack-npm-9.0.0-rc.10-6bfaf96715-1.zip\node_modules\@ngtools\webpack\src\angular_compiler_plugin.js:554:33
    at SyncHook.eval [as call] (eval at create (C:\dev\lec-migration\.yarn\cache\tapable-npm-1.1.3-f1c2843426-1.zip\node_modules\tapable\lib\HookCodeFactory.js:19:10), <anonymous>:7:1)
    at SyncHook.lazyCompileHook (C:\dev\lec-migration\.yarn\cache\tapable-npm-1.1.3-f1c2843426-1.zip\node_modules\tapable\lib\Hook.js:154:20)
    at Object.webpack [as webpackFactory] (C:\dev\lec-migration\.yarn\cache\webpack-npm-4.41.2-efbe0580aa-1.zip\node_modules\webpack\lib\webpack.js:55:30)
    at createWebpack (C:\dev\lec-migration\.yarn\$$virtual\@angular-devkit-build-webpack-virtual-0beaa59de8\0\cache\@angular-devkit-build-webpack-npm-0.900.0-rc.10-7017fe1d56-1.zip\node_modules\@angular-devkit\build-webpack\src\webpack-dev-server\index.js:20:36)
    at Object.runWebpackDevServer (C:\dev\lec-migration\.yarn\$$virtual\@angular-devkit-build-webpack-virtual-0beaa59de8\0\cache\@angular-devkit-build-webpack-npm-0.900.0-rc.10-7017fe1d56-1.zip\node_modules\@angular-devkit\build-webpack\src\webpack-dev-server\index.js:46:12)
    at SwitchMapSubscriber.project (C:\dev\lec-migration\.yarn\$$virtual\@angular-devkit-build-angular-virtual-d79a835d58\0\cache\@angular-devkit-build-angular-npm-0.900.0-rc.10-f83f279b13-1.zip\node_modules\@angular-devkit\build-angular\src\dev-server\index.js:191:32)
    at SwitchMapSubscriber._next (C:\dev\lec-migration\.yarn\cache\rxjs-npm-6.5.3-bc949c0a94-1.zip\node_modules\rxjs\internal\operators\switchMap.js:49:27)
    at SwitchMapSubscriber.Subscriber.next (C:\dev\lec-migration\.yarn\cache\rxjs-npm-6.5.3-bc949c0a94-1.zip\node_modules\rxjs\internal\Subscriber.js:66:18)
    at C:\dev\lec-migration\.yarn\cache\rxjs-npm-6.5.3-bc949c0a94-1.zip\node_modules\rxjs\internal\util\subscribeToPromise.js:7:24
    at processTicksAndRejections (internal/process/task_queues.js:97:5)

Other

Documentation suggested you add the fallowing into .yarnrc.yml nodeLinker: node-modules

When then produces the following error

Error: Something that got detected as your top-level application (because it doesn't seem to belong to any package) tried to access a package that is not declared in your dependencies       

Required package: @yarnpkg/fslib (via "@yarnpkg/fslib")
Required by: /C:/dev/lec-migration/node_modules/@yarnpkg/pnpify/lib/

Issue Analytics

  • State:open
  • Created 4 years ago
  • Reactions:60
  • Comments:45 (16 by maintainers)

github_iconTop GitHub Comments

34reactions
fguittoncommented, Mar 29, 2021

This is still of interest for ongoing projects

21reactions
tyteen4a03commented, Sep 17, 2022

+1 - yarn 1 has been discontinued for 3 years now.

Read more comments on GitHub >

github_iconTop Results From Across the Web

Plug'n'Play | Yarn - Package Manager
An overview of Plug'n'Play, a powerful and innovative installation strategy for Node. ... Native support; Support via plugins; Incompatible.
Read more >
What is Yarn PNP and Should You Use It? - Atomic Spin
Yarn PNP (Plug'n'Play) can make installation faster and provide better strictness around transitive dependencies. Is it worth using?
Read more >
Upgrade to Yarn >2 with (or without) Plug'n'Play | by Julien ...
Even when PnP is supported, it is often an afterthought. While it's getting better, it's hard for developers to justify upgrading to Yarn...
Read more >
Yarn v2 PnP is simply a lifesaver if you have a medium+ sized ...
We have a pretty large monorepo codebase (460 packages and counting) that we're migrating from yarn v1 to yarn v2. I'll say it's...
Read more >
State of Yarn 2 (Berry) in 2021 - Hao's learning log
The solution is called Plug'n'Play (PnP). Surprisingly, the PnP feature exists in Yarn 1. The feature was unveiled back in September 2018, ...
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found