Cross-platform directory symlinking
- 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
pnpm add symlink-dir
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
'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))
Creates the link called path
pointing to target
.
Options:
overwrite
- boolean - istrue
by default. Whenfalse
, existing files at dest are not overwritten.
Result:
reused
- boolean - istrue
if the symlink already existed pointing to thetarget
.warn
- string - any issues that happened during linking (it does mean a failure).