Skip to content

Unable to use Yarn 2+ #5662

Open
Open
@larrifax

Description

@larrifax

Issue Description

I'm trying to use yarn as my package manager, but ns build android fails with the following error: Command failed: yarn config get registry.

Seems like that config value doesn't exist anymore in Yarn 2+. It may have been renamed to the following:

❯ yarn config get npmRegistryServer
https://registry.yarnpkg.com

This seems to be the place where the command is ran:

const registry = await this.$childProcess.exec(`yarn config get registry`);

Reproduction

Steps I've taken:

  1. corepack enable
  2. yarn set version berry
  3. yarn install
  4. Removed package-lock.json
  5. ns package-manager set yarn
  6. ns clean
  7. ns build android

Relevant log output (if applicable)

Build output:

❯ ns build android
(node:28069) [DEP0148] DeprecationWarning: Use of deprecated folder mapping "./" in the "exports" field module resolution of the package at /workspaces/way-app/node_modules/vuex/package.json.
Update this package.json to use a subpath pattern like "./*".
(Use `node --trace-deprecation ...` to show where the warning was created)
Preparing project...
(node:28118) [DEP0148] DeprecationWarning: Use of deprecated folder mapping "./" in the "exports" field module resolution of the package at /workspaces/way-app/node_modules/vuex/package.json.
Update this package.json to use a subpath pattern like "./*".
(Use `node --trace-deprecation ...` to show where the warning was created)
assets by path assets/flags/*.png 53.2 KiB
  asset assets/flags/bn.png 847 bytes [compared for emit] [from: app/assets/flags/bn.png] [copied]
  + 195 assets
assets by path fonts/ 6.48 MiB 41 assets
assets by path assets/css/ 147 KiB
  assets by path assets/css/*.scss 17.1 KiB 7 assets
  assets by path assets/css/*.css 130 KiB 2 assets
assets by path *.js 13.5 MiB
  asset vendor.js 11.5 MiB [compared for emit] (name: vendor) (id hint: defaultVendor)
  asset bundle.js 2.06 MiB [compared for emit] (name: bundle)
  asset runtime.js 13.2 KiB [compared for emit] (name: runtime)
assets by path assets/json/*.json 186 KiB
  asset assets/json/LottieSpinningCar.json 92.9 KiB [compared for emit] [from: app/assets/json/LottieSpinningCar.json] [copied]
  asset assets/json/LottieTest.json 92.9 KiB [compared for emit] [from: app/assets/json/LottieTest.json] [copied]
asset assets/images/NativeScript-Vue.png 8.22 KiB [compared for emit] [from: app/assets/images/NativeScript-Vue.png] [copied]
Entrypoint bundle 13.5 MiB = runtime.js 13.2 KiB vendor.js 11.5 MiB bundle.js 2.06 MiB
runtime modules 2.84 KiB 9 modules
orphan modules 542 bytes [orphan] 7 modules
modules by path ./node_modules/ 4.33 MiB
  javascript modules 4.07 MiB 510 modules
  json modules 273 KiB
    modules by path ./node_modules/mdn-data/css/*.json 242 KiB 3 modules
    modules by path ./node_modules/css-tree/ 30.7 KiB 2 modules
modules by path ./app/ 559 KiB 437 modules
external "~/package.json" 42 bytes [optional] [built] [code generated]
webpack 5.71.0 compiled successfully in 7030 ms
Webpack compilation complete.
(node:28069) [DEP0148] DeprecationWarning: Use of deprecated folder mapping "./" in the "exports" field module resolution of the package at /workspaces/way-app/node_modules/@nativescript/core/node_modules/tslib/package.json.
Update this package.json to use a subpath pattern like "./*".
Command failed: yarn config get registry


### Environment

Using Yarn 3.2.0
Using Node 16.14.0

### Please accept these terms

- [X] I have searched the [existing issues](https://github.com/NativeScript/nativescript-cli/issues) as well as [StackOverflow](https://stackoverflow.com/questions/tagged/nativescript) and this has not been posted before
- [X] This is a bug report
- [X] I agree to follow this project's [Code of Conduct](https://github.com/NativeScript/NativeScript/blob/master/tools/notes/CONTRIBUTING.md#coc)

Activity

farfromrefug

farfromrefug commented on Nov 18, 2022

@farfromrefug
Contributor

@larrifax yes there are more places where the cli is not compatible with yarn 2+
@rigor789 i can fix it the question is do we stop supporting yarn 1 (which i would prever) Otherwise we need a technique for each command to know if we are using yarn 1 or 2+

rigor789

rigor789 commented on Nov 18, 2022

@rigor789
Member

We would need to treat it as a separate package manager like npm, pnpm, yarn, yarn2 and stay backwards compatible, since yarn 1 is still more widely used than yarn 2...

Should actually revive this effort #5379 and just add yarn2 as a new package manager option...

farfromrefug

farfromrefug commented on Nov 18, 2022

@farfromrefug
Contributor

@rigor789 ok do you want me to add yarn2 now with a PR? or should i wait for the refactoring?/

rigor789

rigor789 commented on Nov 18, 2022

@rigor789
Member

If it's not too complicated you can add it now, only concerned about it because there are many services that deal with package management, so will require quite a few changes across the board...

farfromrefug

farfromrefug commented on Nov 18, 2022

@farfromrefug
Contributor
farfromrefug

farfromrefug commented on Nov 18, 2022

@farfromrefug
Contributor

@larrifax Pr pending #5701

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    bug-pending-triageReported bug, pending triage to confirm.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

      Development

      No branches or pull requests

        Participants

        @larrifax@farfromrefug@rigor789

        Issue actions

          Unable to use Yarn 2+ · Issue #5662 · NativeScript/nativescript-cli