Skip to content

For consuming the ripgrep binary from microsoft/ripgrep-prebuilt in a Node project

License

Notifications You must be signed in to change notification settings

microsoft/vscode-ripgrep

Repository files navigation

vscode-ripgrep

This is an npm module for using ripgrep in a Node project. It's used by VS Code.

How it works

  • Ripgrep is built in microsoft/ripgrep-prebuilt and published to releases for each tag in that repo.
  • In this module's postinstall task, it determines which platform it is being installed on and downloads the correct binary from ripgrep-prebuilt for the platform.
  • The path to the ripgrep binary is exported as rgPath.

Usage example

const { rgPath } = require('vscode-ripgrep');

// child_process.spawn(rgPath, ...)

Dev note

Runtime dependencies are not allowed in this project. This code runs on postinstall, and any dependencies would only be needed for postinstall, but they would have to be declared as dependencies, not devDependencies. Then if they were not cleaned up manually, they would end up being included in any project that uses this. I allow https-proxy-agent as an exception because we already ship that in VS Code, and proxy-from-env because it's very small and much easier to use it than reimplement it.

GitHub API Limit note

You can produce an API key, set the GITHUB_TOKEN environment var to it, and vscode-ripgrep will use it when downloading from GitHub. This increases your API limit.