What is find-yarn-workspace-root?
The find-yarn-workspace-root npm package is a utility that helps to find the root of a Yarn workspace. It traverses the directory tree up from a given directory until it finds a package.json file with a 'workspaces' field, indicating the root of a Yarn workspace. This is particularly useful in monorepo setups where multiple packages are managed under a single version control system.
What are find-yarn-workspace-root's main functionalities?
Find Yarn Workspace Root
This feature allows you to find the root directory of a Yarn workspace by providing the current directory. It will return the path to the workspace root or null if it's not inside a Yarn workspace.
const findYarnWorkspaceRoot = require('find-yarn-workspace-root');
const workspaceRoot = findYarnWorkspaceRoot(__dirname);
Other packages similar to find-yarn-workspace-root
pkg-dir
The pkg-dir package is similar in that it finds the root directory of a Node.js project or npm package by locating the package.json file. However, it does not specifically look for Yarn workspace roots and is more general-purpose.
find-root
find-root is another package that finds the root of a project by searching for a specific file (by default package.json) in the current directory or any parent directory. It's similar to find-yarn-workspace-root but does not specifically target Yarn workspaces.
find-package-json
find-package-json is a package that iterates over the filesystem to find all the package.json files. It can be used to find the nearest package.json file, but unlike find-yarn-workspace-root, it does not provide specific functionality for identifying Yarn workspace roots.
find-yarn-workspace-root
Algorithm for finding the root of a yarn workspace, extracted from yarnpkg.com
Installation
yarn add find-yarn-workspace-root
Usage
const findWorkspaceRoot = require('find-yarn-workspace-root');
const workspaceRoot = findWorkspaceRoot(__dirname);
Contributing
Contributions are welcome! Just clone this repository and install the dependencies:
git clone https://github.com/square/find-yarn-workspace-root.git
cd find-yarn-workspace-root
yarn
Note that you'll need node
and yarn
installed. Next, verify the tests all pass:
yarn test
Then create a branch for your bugfix/feature, make changes and update the tests, and submit a pull request. Please do not change the version in package.json
when submitting a pull request. We determine the next version automatically based on the commits since the last release.
NOTE: Commit messages follow the Angular commit message guidelines.
Releases
To trigger a release, bump the version using standard-version
:
-
To update the CHANGELOG, bump the version in package.json
, and create a git tag, run:
$(yarn bin)/standard-version
-
git push && git push --tags
-
npm publish
Copyright 2017 Square, Inc.