noop(); pop(); map();

    TypeScript icon, indicating that this package has built-in type declarations

    7.0.0 • Public • Published

    Codecov Build Node Twitter Medium

    Get the current package's binary path (using the package.json bin field).

    This is useful when testing a package's binary. Using get-bin-path (as opposed to hard-coding the path to the binary):

    • validates that the package.json bin field is correctly setup.
    • decouples the binary path from the tests, which allows moving the file without rewriting the tests.


    import { getBinPathSync } from 'get-bin-path'
    // `binPath` is the absolute path to the current package's binary
    const binPath = getBinPathSync()
    // Test runner
    import test from 'ava'
    // Library to execute child processes / commands
    import execa from 'execa'
    import { getBinPath } from 'get-bin-path'
    test('Binary file should return "true"', async (t) => {
      const binPath = await getBinPath()
      const { stdout } = await execa(binPath), 'true')


    npm install get-bin-path

    This package is an ES module and must be loaded using an import or import() statement, not require().


    This returns the current package's binary absolute path:

    import { getBinPathSync } from 'get-bin-path'
    const binPath = getBinPathSync()

    This can be either synchronous or asynchronous:

    import { getBinPath } from 'get-bin-path'
    const asyncFunc = async () => {
      const binPath = await getBinPath()

    If there are several binaries, you can choose between them:

    import { getBinPathSync } from 'get-bin-path'
    const binPath = getBinPathSync({ name: 'binary-name' })

    The current directory can be overridden (for example with monorepos):

    import { getBinPathSync } from 'get-bin-path'
    const binPath = getBinPathSync({ cwd: '/currentDirectory' })

    When no package.json or binary can be found, undefined is returned instead.


    options: object
    Returns: string | undefined


    options: object
    Returns: Promise<string | undefined>


    Type: object

    Type: string
    Default: package.json name property

    Name of the binary. Only needs to be specified when the package exports several binaries.


    Type: string
    Default: Current directory

    Override the current directory, which is used when retrieving the package.json.

    This is useful when using monorepos.

    See also

    • execa: process execution for humans


    For any question, don't hesitate to submit an issue on GitHub.

    Everyone is welcome regardless of personal background. We enforce a Code of conduct in order to promote a positive and inclusive environment.


    This project was made with ❤️. The simplest way to give back is by starring and sharing it online.

    If the documentation is unclear or has a typo, please click on the page's Edit button (pencil icon) and suggest a correction.

    If you would like to help us fix a bug or add a new feature, please check our guidelines. Pull requests are welcome!

    Thanks go to our wonderful contributors:


    💻 🎨 🤔 📖

    Daniel Stockman


    Kabir Baidhya



    npm i get-bin-path


    DownloadsWeekly Downloads






    Unpacked Size

    25.1 kB

    Total Files


    Last publish


    • ehmicky