[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-10188":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":16,"subscribersCount":16,"size":16,"stars1d":16,"stars7d":17,"stars30d":18,"stars90d":16,"forks30d":16,"starsTrendScore":16,"compositeScore":19,"rankGlobal":10,"rankLanguage":10,"license":20,"archived":21,"fork":21,"defaultBranch":22,"hasWiki":21,"hasPages":21,"topics":23,"createdAt":10,"pushedAt":10,"updatedAt":28,"readmeContent":29,"aiSummary":30,"trendingCount":16,"starSnapshotCount":16,"syncStatus":31,"lastSyncTime":32,"discoverSource":33},10188,"berry","yarnpkg\u002Fberry","yarnpkg","📦🐈 Active development trunk for Yarn ⚒","https:\u002F\u002Fyarnpkg.com",null,"TypeScript",8077,1293,85,776,0,5,28,70.64,"BSD 2-Clause \"Simplified\" License",false,"master",[24,25,26,27],"javascript","nodejs","package-manager","yarn","2026-06-12 04:00:49","\u003Cp align=\"center\">\n  \u003Ca href=\"https:\u002F\u002Fyarnpkg.com\u002F\">\n    \u003Cimg alt=\"Yarn\" src=\"https:\u002F\u002Fgithub.com\u002Fyarnpkg\u002Fassets\u002Fblob\u002Fmaster\u002Fyarn-kitten-full.png?raw=true\" width=\"546\"\u002F>\n  \u003C\u002Fa>\n\u003C\u002Fp>\n\n\u003Cp align=\"center\">\n  Fast, reliable, and secure dependency management.\n\u003C\u002Fp>\n\n\u003Cp align=\"center\">\n  \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fyarnpkg\u002Fberry\u002Factions\">\u003Cimg alt=\"GitHub Actions status\" src=\"https:\u002F\u002Fgithub.com\u002Fyarnpkg\u002Fberry\u002Fworkflows\u002FIntegration\u002Fbadge.svg\"\u002F>\u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fdiscord.gg\u002Fyarnpkg\">\u003Cimg alt=\"Discord Chat\" src=\"https:\u002F\u002Fimg.shields.io\u002Fdiscord\u002F226791405589233664.svg\"\u002F>\u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fyarnpkg\u002Fberry\u002Freleases\">\u003Cimg alt=\"Latest CLI Release\" src=\"https:\u002F\u002Fimg.shields.io\u002Fnpm\u002Fv\u002F@yarnpkg\u002Fcli\u002Flatest?label=latest\"\u002F>\u003C\u002Fa>\n\u003C\u002Fp>\n\n---\n\nYarn is a modern package manager split into various packages. Its novel architecture allows to do things currently impossible with existing solutions:\n\n- Yarn supports [plugins](https:\u002F\u002Fyarnpkg.com\u002Ffeatures\u002Fextensibility); adding a plugin is as simple as adding it into your repository\n- Yarn supports Node by default but isn't limited to it - plugins can add support for other languages\n- Yarn supports [workspaces](https:\u002F\u002Fyarnpkg.com\u002Ffeatures\u002Fworkspaces) natively, and its CLI takes advantage of that\n- Yarn uses a bash-like [portable shell](https:\u002F\u002Fgithub.com\u002Fyarnpkg\u002Fberry\u002Ftree\u002Fmaster\u002Fpackages\u002Fyarnpkg-shell#yarnpkgshell) to make package scripts portable across Windows, Linux, and macOS\n- Yarn is first and foremost a [Node API](https:\u002F\u002Fyarnpkg.com\u002Fapi\u002F) that can be used programmatically (via [@yarnpkg\u002Fcore](packages\u002Fyarnpkg-core))\n- Yarn is written in [TypeScript](https:\u002F\u002Fwww.typescriptlang.org\u002F) and is fully type-checked\n\n## Our supports\n\n### [Gold sponsors](https:\u002F\u002Fopencollective.com\u002Fyarnpkg)\n\n\u003Ctable width=\"100%\">\n  \u003Ctr>\n    \u003Ctd>\n      \u003Ca href=\"https:\u002F\u002Fwww.doppler.com\u002F?utm_campaign=github_repo&utm_medium=referral&utm_content=yarn&utm_source=github#gh-light-mode-only\">\n        \u003Cimg src=\"https:\u002F\u002Fassets.website-files.com\u002F5de9972f49103c5df3964004\u002F5f0c1146992a5e9e4fa553e6_logo.svg\" width=\"140\"\u002F>\n      \u003C\u002Fa>\n      \u003Ca href=\"https:\u002F\u002Fwww.doppler.com\u002F?utm_campaign=github_repo&utm_medium=referral&utm_content=yarn&utm_source=github#gh-dark-mode-only\">\n        \u003Cimg src=\"https:\u002F\u002Fuser-images.githubusercontent.com\u002F1037931\u002F151548177-308f0a41-fb0e-4311-9969-4a2455b08686.svg\" width=\"140\"\u002F>\n      \u003C\u002Fa>\n    \u003C\u002Ftd>\n    \u003Ctd>\n      \u003Cb>All your environment variables, in one place\u003C\u002Fb>. Stop struggling with scattered API keys, hacking together home-brewed tools, and avoiding access controls. Keep your team and servers in sync with \u003Cb>\u003Ca href=\"https:\u002F\u002Fwww.doppler.com\u002F?utm_campaign=github_repo&utm_medium=referral&utm_content=yarn&utm_source=github\">Doppler\u003C\u002Fa>\u003C\u002Fb>.\n    \u003C\u002Ftd>\n  \u003C\u002Ftr>\n  \u003Ctr>\n    \u003Ctd>\n      \u003Ca href=\"https:\u002F\u002Fworkos.com\u002F?utm_campaign=github_repo&utm_medium=referral&utm_content=berry&utm_source=github#gh-light-mode-only\">\n        \u003Cimg src=\"https:\u002F\u002Fuser-images.githubusercontent.com\u002F1037931\u002F151547094-7aa4a5cb-07e4-4b8a-ab8f-0a15fd63ab7d.svg\" width=\"140\"\u002F>\n      \u003C\u002Fa>\n      \u003Ca href=\"https:\u002F\u002Fworkos.com\u002F?utm_campaign=github_repo&utm_medium=referral&utm_content=berry&utm_source=github#gh-dark-mode-only\">\n        \u003Cimg src=\"https:\u002F\u002Fuser-images.githubusercontent.com\u002F1037931\u002F151547899-3655e0d3-3bdb-4351-bd75-af2bebd3ce92.svg\" width=\"140\"\u002F>\n      \u003C\u002Fa>\n    \u003C\u002Ftd>\n    \u003Ctd>\n      \u003Cb>Your app, enterprise-ready\u003C\u002Fb>. Start selling to enterprise customers with just a few lines of code. Add Single Sign-On (and more) in minutes instead of months with \u003Cb>\u003Ca href=\"https:\u002F\u002Fworkos.com\u002F?utm_campaign=github_repo&utm_medium=referral&utm_content=berry&utm_source=github\">WorkOS\u003C\u002Fa>\u003C\u002Fb>.\n    \u003C\u002Ftd>\n  \u003C\u002Ftr>\n\u003C\u002Ftable>\n\n### But also\n\n\u003Ctable width=\"100%\">\n  \u003Ctr>\n    \u003Ctd>\n      \u003Ca href=\"https:\u002F\u002Fwww.datadoghq.com\u002F\">\n        \u003Cimg src=\"https:\u002F\u002Fuser-images.githubusercontent.com\u002F1037931\u002F86770706-62299e00-c051-11ea-931a-2831c894ab6a.png\" width=\"140\"\u002F>\n      \u003C\u002Fa>\n    \u003C\u002Ftd>\n    \u003Ctd>\n      \u003Cb>\u003Ca href=\"https:\u002F\u002Fwww.datadoghq.com\u002F\">Datadog\u003C\u002Fa>\u003C\u002Fb> has been sponsoring the time of our lead maintainer for more than a year now. They also upgraded our account so that we can benefit from long-term telemetry (\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fyarnpkg\u002Fberry\u002Fissues\u002F1250\">RFC\u003C\u002Fa>).\n    \u003C\u002Ftd>\n  \u003C\u002Ftr>\n  \u003Ctr>\n    \u003Ctd>\n      \u003Ca href=\"https:\u002F\u002Fsysgears.com\u002F\">\n        \u003Cimg src=\"https:\u002F\u002Fgithub.com\u002Fyarnpkg\u002Fberry\u002Fassets\u002F1259926\u002Fc4d46d45-4f45-4b20-811e-d1f9d9e452dd\" width=\"140\"\u002F>\n      \u003C\u002Fa>\n    \u003C\u002Ftd>\n    \u003Ctd>\n      \u003Cb>\u003Ca href=\"https:\u002F\u002Fsysgears.com\u002F\">SysGears\u003C\u002Fa>\u003C\u002Fb> also sponsored time from very early in the 2.x development. In particular, their strong investment is the reason why Yarn 2 supports node_modules installs even better than it used to.\n    \u003C\u002Ftd>\n  \u003C\u002Ftr>\n  \u003Ctr>\n    \u003Ctd>\n      \u003Ca href=\"https:\u002F\u002Fwww.netlify.com\u002F\">\n        \u003Cimg src=\"https:\u002F\u002Fupload.wikimedia.org\u002Fwikipedia\u002Fcommons\u002Fb\u002Fb8\u002FNetlify_logo.svg\" width=\"140\"\u002F>\n      \u003C\u002Fa>\n    \u003C\u002Ftd>\n    \u003Ctd>\n      \u003Cb>\u003Ca href=\"https:\u002F\u002Fwww.netlify.com\u002F\">Netlify\u003C\u002Fa>\u003C\u002Fb> has been the historical provider for our website. Each time we got issues, they jumped to our help. Their live previews have been super helpful in our development process.\n    \u003C\u002Ftd>\n  \u003C\u002Ftr>\n  \u003Ctr>\n    \u003Ctd>\n      \u003Ca href=\"https:\u002F\u002Fwww.cloudflare.com\u002F\">\n       \u003Cimg src=\"https:\u002F\u002Fuser-images.githubusercontent.com\u002F1037931\u002F86770912-bc2a6380-c051-11ea-9f99-97161b2d7cf2.png\" width=\"140\"\u002F>\n      \u003C\u002Fa>\n    \u003C\u002Ftd>\n    \u003Ctd>\n      \u003Cb>\u003Ca href=\"https:\u002F\u002Fwww.cloudflare.com\u002F\">Cloudflare\u003C\u002Fa>\u003C\u002Fb> has also been a historical partner. While we don't directly mirror the npm registry anymore, they still power our website to make its delivery as fast as possible.\n    \u003C\u002Ftd>\n  \u003C\u002Ftr>\n  \u003Ctr>\n    \u003Ctd>\n      \u003Ca href=\"https:\u002F\u002Fwww.algolia.com\u002F\">\n       \u003Cimg src=\"https:\u002F\u002Fupload.wikimedia.org\u002Fwikipedia\u002Fcommons\u002Fd\u002Fda\u002FAlgolia_logo.svg\" width=\"140\"\u002F>\n      \u003C\u002Fa>\n    \u003C\u002Ftd>\n    \u003Ctd>\n      \u003Cb>\u003Ca href=\"https:\u002F\u002Fwww.algolia.com\u002F\">Algolia\u003C\u002Fa>\u003C\u002Fb> contributed a lot to our documentation over the years. They still power the search engine we use on both versions of the documentation.\n    \u003C\u002Ftd>\n  \u003C\u002Ftr>\n\u003C\u002Ftable>\n\n## Installation\n\nConsult the [Installation Guide](https:\u002F\u002Fyarnpkg.com\u002Fgetting-started\u002Finstall).\n\n## Migration\n\nConsult the [Migration Guide](https:\u002F\u002Fyarnpkg.com\u002Fgetting-started\u002Fmigration).\n\n## Documentation\n\nThe documentation can be found at [yarnpkg.com](https:\u002F\u002Fyarnpkg.com\u002F).\n\n## API\n\nThe API documentation can be found at [yarnpkg.com\u002Fapi](https:\u002F\u002Fyarnpkg.com\u002Fapi).\n\n## Current status\n\nOn top of our classic integration tests, we also run Yarn every day against the latest versions of the toolchains used by our community - just in case. Everything should be green!\n\n\u003C!-- Generated by running \"node .\u002Fscripts\u002Fgenerate-e2e-status-list.mjs\" -->\n\u003C!-- start generated list -->\n- [![](https:\u002F\u002Fgithub.com\u002Fyarnpkg\u002Fberry\u002Factions\u002Fworkflows\u002Fe2e-create-vue-workflow.yml\u002Fbadge.svg?event=schedule)](https:\u002F\u002Fgithub.com\u002Fyarnpkg\u002Fberry\u002Factions\u002Fworkflows\u002Fe2e-create-vue-workflow.yml)\n- [![](https:\u002F\u002Fgithub.com\u002Fyarnpkg\u002Fberry\u002Factions\u002Fworkflows\u002Fe2e-docusaurus-workflow.yml\u002Fbadge.svg?event=schedule)](https:\u002F\u002Fgithub.com\u002Fyarnpkg\u002Fberry\u002Factions\u002Fworkflows\u002Fe2e-docusaurus-workflow.yml)\n- [![](https:\u002F\u002Fgithub.com\u002Fyarnpkg\u002Fberry\u002Factions\u002Fworkflows\u002Fe2e-esbuild-workflow.yml\u002Fbadge.svg?event=schedule)](https:\u002F\u002Fgithub.com\u002Fyarnpkg\u002Fberry\u002Factions\u002Fworkflows\u002Fe2e-esbuild-workflow.yml)\n- [![](https:\u002F\u002Fgithub.com\u002Fyarnpkg\u002Fberry\u002Factions\u002Fworkflows\u002Fe2e-eslint-workflow.yml\u002Fbadge.svg?event=schedule)](https:\u002F\u002Fgithub.com\u002Fyarnpkg\u002Fberry\u002Factions\u002Fworkflows\u002Fe2e-eslint-workflow.yml)\n- [![](https:\u002F\u002Fgithub.com\u002Fyarnpkg\u002Fberry\u002Factions\u002Fworkflows\u002Fe2e-fsevents-workflow.yml\u002Fbadge.svg?event=schedule)](https:\u002F\u002Fgithub.com\u002Fyarnpkg\u002Fberry\u002Factions\u002Fworkflows\u002Fe2e-fsevents-workflow.yml)\n- [![](https:\u002F\u002Fgithub.com\u002Fyarnpkg\u002Fberry\u002Factions\u002Fworkflows\u002Fe2e-gatsby-workflow.yml\u002Fbadge.svg?event=schedule)](https:\u002F\u002Fgithub.com\u002Fyarnpkg\u002Fberry\u002Factions\u002Fworkflows\u002Fe2e-gatsby-workflow.yml)\n- [![](https:\u002F\u002Fgithub.com\u002Fyarnpkg\u002Fberry\u002Factions\u002Fworkflows\u002Fe2e-gulp-workflow.yml\u002Fbadge.svg?event=schedule)](https:\u002F\u002Fgithub.com\u002Fyarnpkg\u002Fberry\u002Factions\u002Fworkflows\u002Fe2e-gulp-workflow.yml)\n- [![](https:\u002F\u002Fgithub.com\u002Fyarnpkg\u002Fberry\u002Factions\u002Fworkflows\u002Fe2e-husky-workflow.yml\u002Fbadge.svg?event=schedule)](https:\u002F\u002Fgithub.com\u002Fyarnpkg\u002Fberry\u002Factions\u002Fworkflows\u002Fe2e-husky-workflow.yml)\n- [![](https:\u002F\u002Fgithub.com\u002Fyarnpkg\u002Fberry\u002Factions\u002Fworkflows\u002Fe2e-jest-workflow.yml\u002Fbadge.svg?event=schedule)](https:\u002F\u002Fgithub.com\u002Fyarnpkg\u002Fberry\u002Factions\u002Fworkflows\u002Fe2e-jest-workflow.yml)\n- [![](https:\u002F\u002Fgithub.com\u002Fyarnpkg\u002Fberry\u002Factions\u002Fworkflows\u002Fe2e-mocha-workflow.yml\u002Fbadge.svg?event=schedule)](https:\u002F\u002Fgithub.com\u002Fyarnpkg\u002Fberry\u002Factions\u002Fworkflows\u002Fe2e-mocha-workflow.yml)\n- [![](https:\u002F\u002Fgithub.com\u002Fyarnpkg\u002Fberry\u002Factions\u002Fworkflows\u002Fe2e-next-workflow.yml\u002Fbadge.svg?event=schedule)](https:\u002F\u002Fgithub.com\u002Fyarnpkg\u002Fberry\u002Factions\u002Fworkflows\u002Fe2e-next-workflow.yml)\n- [![](https:\u002F\u002Fgithub.com\u002Fyarnpkg\u002Fberry\u002Factions\u002Fworkflows\u002Fe2e-nm-angular-workflow.yml\u002Fbadge.svg?event=schedule)](https:\u002F\u002Fgithub.com\u002Fyarnpkg\u002Fberry\u002Factions\u002Fworkflows\u002Fe2e-nm-angular-workflow.yml)\n- [![](https:\u002F\u002Fgithub.com\u002Fyarnpkg\u002Fberry\u002Factions\u002Fworkflows\u002Fe2e-nm-babel-workflow.yml\u002Fbadge.svg?event=schedule)](https:\u002F\u002Fgithub.com\u002Fyarnpkg\u002Fberry\u002Factions\u002Fworkflows\u002Fe2e-nm-babel-workflow.yml)\n- [![](https:\u002F\u002Fgithub.com\u002Fyarnpkg\u002Fberry\u002Factions\u002Fworkflows\u002Fe2e-nm-berry-workflow.yml\u002Fbadge.svg?event=schedule)](https:\u002F\u002Fgithub.com\u002Fyarnpkg\u002Fberry\u002Factions\u002Fworkflows\u002Fe2e-nm-berry-workflow.yml)\n- [![](https:\u002F\u002Fgithub.com\u002Fyarnpkg\u002Fberry\u002Factions\u002Fworkflows\u002Fe2e-nyc-workflow.yml\u002Fbadge.svg?event=schedule)](https:\u002F\u002Fgithub.com\u002Fyarnpkg\u002Fberry\u002Factions\u002Fworkflows\u002Fe2e-nyc-workflow.yml)\n- [![](https:\u002F\u002Fgithub.com\u002Fyarnpkg\u002Fberry\u002Factions\u002Fworkflows\u002Fe2e-parcel-workflow.yml\u002Fbadge.svg?event=schedule)](https:\u002F\u002Fgithub.com\u002Fyarnpkg\u002Fberry\u002Factions\u002Fworkflows\u002Fe2e-parcel-workflow.yml)\n- [![](https:\u002F\u002Fgithub.com\u002Fyarnpkg\u002Fberry\u002Factions\u002Fworkflows\u002Fe2e-pnp-angular-workflow.yml\u002Fbadge.svg?event=schedule)](https:\u002F\u002Fgithub.com\u002Fyarnpkg\u002Fberry\u002Factions\u002Fworkflows\u002Fe2e-pnp-angular-workflow.yml)\n- [![](https:\u002F\u002Fgithub.com\u002Fyarnpkg\u002Fberry\u002Factions\u002Fworkflows\u002Fe2e-prettier-workflow.yml\u002Fbadge.svg?event=schedule)](https:\u002F\u002Fgithub.com\u002Fyarnpkg\u002Fberry\u002Factions\u002Fworkflows\u002Fe2e-prettier-workflow.yml)\n- [![](https:\u002F\u002Fgithub.com\u002Fyarnpkg\u002Fberry\u002Factions\u002Fworkflows\u002Fe2e-rollup-workflow.yml\u002Fbadge.svg?event=schedule)](https:\u002F\u002Fgithub.com\u002Fyarnpkg\u002Fberry\u002Factions\u002Fworkflows\u002Fe2e-rollup-workflow.yml)\n- [![](https:\u002F\u002Fgithub.com\u002Fyarnpkg\u002Fberry\u002Factions\u002Fworkflows\u002Fe2e-storybook-workflow.yml\u002Fbadge.svg?event=schedule)](https:\u002F\u002Fgithub.com\u002Fyarnpkg\u002Fberry\u002Factions\u002Fworkflows\u002Fe2e-storybook-workflow.yml)\n- [![](https:\u002F\u002Fgithub.com\u002Fyarnpkg\u002Fberry\u002Factions\u002Fworkflows\u002Fe2e-svelte-kit-workflow.yml\u002Fbadge.svg?event=schedule)](https:\u002F\u002Fgithub.com\u002Fyarnpkg\u002Fberry\u002Factions\u002Fworkflows\u002Fe2e-svelte-kit-workflow.yml)\n- [![](https:\u002F\u002Fgithub.com\u002Fyarnpkg\u002Fberry\u002Factions\u002Fworkflows\u002Fe2e-typescript-workflow.yml\u002Fbadge.svg?event=schedule)](https:\u002F\u002Fgithub.com\u002Fyarnpkg\u002Fberry\u002Factions\u002Fworkflows\u002Fe2e-typescript-workflow.yml)\n- [![](https:\u002F\u002Fgithub.com\u002Fyarnpkg\u002Fberry\u002Factions\u002Fworkflows\u002Fe2e-vite-workflow.yml\u002Fbadge.svg?event=schedule)](https:\u002F\u002Fgithub.com\u002Fyarnpkg\u002Fberry\u002Factions\u002Fworkflows\u002Fe2e-vite-workflow.yml)\n- [![](https:\u002F\u002Fgithub.com\u002Fyarnpkg\u002Fberry\u002Factions\u002Fworkflows\u002Fe2e-vitest-workflow.yml\u002Fbadge.svg?event=schedule)](https:\u002F\u002Fgithub.com\u002Fyarnpkg\u002Fberry\u002Factions\u002Fworkflows\u002Fe2e-vitest-workflow.yml)\n- [![](https:\u002F\u002Fgithub.com\u002Fyarnpkg\u002Fberry\u002Factions\u002Fworkflows\u002Fe2e-webpack-workflow.yml\u002Fbadge.svg?event=schedule)](https:\u002F\u002Fgithub.com\u002Fyarnpkg\u002Fberry\u002Factions\u002Fworkflows\u002Fe2e-webpack-workflow.yml)\n\u003C!-- end generated list -->\n\n## Contributing\n\nConsult the [Contributing Guide](https:\u002F\u002Fyarnpkg.com\u002Fadvanced\u002Fcontributing).\n\n### Building your own bundle\n\nClone this repository, then run the following commands:\n\n```bash\nyarn build:cli\n```\n\n**How it works**\n\nAfter building the CLI your global `yarn` will immediately start to reflect your local changes. This is because Yarn will pick up the [`yarnPath`](https:\u002F\u002Fyarnpkg.com\u002Fconfiguration\u002Fyarnrc#yarnPath) settings in this repository's [`.yarnrc.yml`](https:\u002F\u002Fyarnpkg.com\u002Fconfiguration\u002Fyarnrc), which is configured to use the newly built CLI if available.\n\n**Works out of the box!**\n\nNote that no other command is needed! Given that our dependencies are checked-in within the repository (within the [`.yarn\u002Fcache`](.yarn\u002Fcache) directory), you don't even need to run [`yarn install`](https:\u002F\u002Fyarnpkg.com\u002Fcli\u002Finstall). Everything just works right after cloning the project and is guaranteed to continue to work ten years from now 🙂\n\n## Yarn plugins\n\n### Default plugins\n\nThose plugins typically come bundled with Yarn. You don't need to do anything special to use them.\n\n- [plugin-compat](packages\u002Fplugin-compat) contains a few built-in patches applied to improve PnP support.\n- [plugin-constraints](packages\u002Fplugin-constraints) adds support for [constraints](https:\u002F\u002Fyarnpkg.com\u002Ffeatures\u002Fconstraints) to Yarn.\n- [plugin-dlx](packages\u002Fplugin-dlx) adds support for the [`yarn dlx`](https:\u002F\u002Fyarnpkg.com\u002Fcli\u002Fdlx) command.\n- [plugin-essentials](packages\u002Fplugin-essentials) adds various commands deemed necessary for a package manager (add, remove, ...).\n- [plugin-exec](packages\u002Fplugin-exec) adds support for using the [`exec:`](https:\u002F\u002Fgithub.com\u002Fyarnpkg\u002Fberry\u002Ftree\u002Fmaster\u002Fpackages\u002Fplugin-exec#documentation) protocol within your dependencies.\n- [plugin-file](packages\u002Fplugin-file) adds support for using the `file:` protocol within your dependencies.\n- [plugin-git](packages\u002Fplugin-git) adds support for cloning packages from Git repositories.\n- [plugin-github](packages\u002Fplugin-github) adds support for using GitHub references as dependencies. [This plugin doesn't use git.](https:\u002F\u002Fstackoverflow.com\u002Fa\u002F13636954\u002F880703)\n- [plugin-http](packages\u002Fplugin-http) adds support for using straight URL references as dependencies (tgz archives only).\n- [plugin-init](packages\u002Fplugin-init) adds support for the [`yarn init`](https:\u002F\u002Fyarnpkg.com\u002Fcli\u002Finit) command.\n- [plugin-interactive-tools](packages\u002Fplugin-interactive-tools) adds support for various interactive commands ([`yarn upgrade-interactive`](https:\u002F\u002Fyarnpkg.com\u002Fcli\u002Fupgrade-interactive)).\n- [plugin-link](packages\u002Fplugin-link) adds support for using [`link:`](https:\u002F\u002Fyarnpkg.com\u002Fprotocol\u002Flink) and [`portal:`](https:\u002F\u002Fyarnpkg.com\u002Fprotocol\u002Fportal) references as dependencies.\n- [plugin-nm](packages\u002Fplugin-nm) adds support for installing packages through a `node_modules` folder.\n- [plugin-npm](packages\u002Fplugin-npm) adds support for using [semver ranges](https:\u002F\u002Fsemver.org) dependencies, resolving them from an npm-like registry.\n- [plugin-npm-cli](packages\u002Fplugin-npm-cli) adds support for npm-specific commands ([`yarn npm login`](https:\u002F\u002Fyarnpkg.com\u002Fcli\u002Fnpm\u002Flogin), [`yarn npm publish`](https:\u002F\u002Fyarnpkg.com\u002Fcli\u002Fnpm\u002Fpublish), ...).\n- [plugin-pack](packages\u002Fplugin-pack) adds support for the [`yarn pack`](https:\u002F\u002Fyarnpkg.com\u002Fcli\u002Fpack) command.\n- [plugin-patch](packages\u002Fplugin-patch) adds support for the `patch:` protocol.\n- [plugin-pnp](packages\u002Fplugin-pnp) adds support for installing JavaScript dependencies through the [Plug'n'Play](https:\u002F\u002Fyarnpkg.com\u002Ffeatures\u002Fpnp) specification.\n- [plugin-stage](packages\u002Fplugin-stage) adds support for the [`yarn stage`](https:\u002F\u002Fyarnpkg.com\u002Fcli\u002Fstage) command.\n- [plugin-typescript](packages\u002Fplugin-typescript) improves the user experience when working with TypeScript.\n- [plugin-version](packages\u002Fplugin-version) adds support for the new [release workflow](https:\u002F\u002Fyarnpkg.com\u002Ffeatures\u002Frelease-workflow).\n- [plugin-workspace-tools](packages\u002Fplugin-workspace-tools) adds support for the [`yarn workspaces foreach`](https:\u002F\u002Fyarnpkg.com\u002Fcli\u002Fworkspaces\u002Fforeach) command.\n\n### Third-party plugins\n\nPlugins can be developed by third-party entities. To use them within your applications, just specify the full plugin URL when calling [`yarn plugin import`](https:\u002F\u002Fyarnpkg.com\u002Fcli\u002Fplugin\u002Fimport). Note that plugins aren't fetched from the npm registry at this time - they must be distributed as a single JavaScript file.\n\n### Creating a new plugin\n\nTo create your own plugin, please refer to the [documentation](https:\u002F\u002Fyarnpkg.com\u002Fadvanced\u002Fplugin-tutorial).\n\n## Generic packages\n\nThe following packages are generic and can be used for a variety of purposes (including to implement other package managers, but not only):\n\n- [@yarnpkg\u002Fcore](packages\u002Fyarnpkg-core) allows any application to manipulate a project programmatically.\n- [@yarnpkg\u002Ffslib](packages\u002Fyarnpkg-fslib) is a set of tools to abstract the filesystem through type-safe primitives.\n- [@yarnpkg\u002Flibzip](packages\u002Fyarnpkg-libzip) contains zlib+libzip bindings compiled to WebAssembly.\n- [@yarnpkg\u002Fnm](packages\u002Fyarnpkg-nm) contains the `node_modules` tree builder and hoister.\n- [@yarnpkg\u002Fparsers](packages\u002Fyarnpkg-parsers) can be used to parse the language used by [@yarnpkg\u002Fshell](packages\u002Fyarnpkg-shell).\n- [@yarnpkg\u002Fpnp](packages\u002Fyarnpkg-pnp) can be used to generate [Plug'n'Play](https:\u002F\u002Fyarnpkg.com\u002Ffeatures\u002Fpnp)-compatible hooks.\n- [@yarnpkg\u002Fpnpify](packages\u002Fyarnpkg-pnpify) is a CLI tool to transparently add PnP support to various tools.\n- [@yarnpkg\u002Fsdks](packages\u002Fyarnpkg-sdks) is a CLI tool to generate the [PnP Editor SDKs](https:\u002F\u002Fyarnpkg.com\u002Fgetting-started\u002Feditor-sdks).\n- [@yarnpkg\u002Fshell](packages\u002Fyarnpkg-shell) is a portable bash-like shell interpreter.\n\n## Yarn packages\n\nThe following packages are meant to be used by Yarn itself, and probably won't be useful to other applications:\n\n- [@yarnpkg\u002Fbuilder](packages\u002Fyarnpkg-builder) contains a CLI tool to package berry and its plugins.\n- [@yarnpkg\u002Fcli](packages\u002Fyarnpkg-cli) is a CLI entry point built on top of [@yarnpkg\u002Fcore](packages\u002Fyarnpkg-core).\n","Yarn 是一个快速、可靠且安全的依赖管理工具。它支持插件扩展，允许用户轻松地通过添加插件来增强功能；同时，Yarn 也原生支持工作空间，使得大型项目的依赖管理更加高效。此外，Yarn 使用一种类似于 bash 的可移植 shell 来确保脚本在 Windows、Linux 和 macOS 上都能正常运行，并且其核心是一个 Node API，可以被程序化地调用。Yarn 主要采用 TypeScript 编写，这不仅提高了代码质量还增强了类型安全性。该项目非常适合需要高效处理 JavaScript 或 Node.js 项目依赖关系的开发者使用。",2,"2026-06-11 03:27:06","top_topic"]