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-dirLets 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 - istrueby default. Whenfalse, existing files at dest are not overwritten.
Result:
reused- boolean - istrueif the symlink already existed pointing to thetarget.warn- string - any issues that happened during linking (it does mean a failure).