symlink-dir

Cross-platform directory symlinking

Usage no npm install needed!

<script type="module">
  import symlinkDir from 'https://cdn.skypack.dev/symlink-dir';
</script>

README

symlink-dir

Cross-platform directory symlinking

npm version Build Status Build Status on Windows

  • 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|yarn|npm> 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(src, dest): Promise<{ reused: boolean, warn?: string }>

Creates a symlink in dest that points to src.

Result:

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

License

MIT © Zoltan Kochan