symlink dir

Cross-platform directory symlinking

48
1
TypeScript

symlink-dir

Cross-platform directory symlinking

npm version

  • Always uses “junctions” on Windows. Even though support for “symbolic links” was added in Vista+, users by default lack permission to create them
  • Any file or directory, that has the destination name, is renamed before creating the link

Installation

pnpm add symlink-dir

CLI Usage

Lets suppose you’d like to self-require your package. You can link it to its own node_modules:

# from -> to
symlink-dir . node_modules/my-package

API Usage

'use strict'
const symlinkDir = require('symlink-dir')
const path = require('path')

symlinkDir('src', 'node_modules/src')
  .then(result => {
    console.log(result)
    //> { reused: false }

    return symlinkDir('src', 'node_modules/src')
  })
  .then(result => {
    console.log(result)
    //> { reused: true }
  })
  .catch(err => console.error(err))

API

symlinkDir(target, path, opts?): Promise<{ reused: boolean, warn?: string }>

symlinkDir.sync(target, path, opts?): { reused: boolean, warn?: string }

Creates the link called path pointing to target.

Options:

  • overwrite - boolean - is true by default. When false, existing files at dest are not overwritten.

Result:

  • reused - boolean - is true if the symlink already existed pointing to the target.
  • warn - string - any issues that happened during linking (it does mean a failure).

License

MIT © Zoltan Kochan