symlink-dir
Version:
Cross-platform directory symlinking
69 lines (47 loc) • 1.69 kB
Markdown
# symlink-dir
> Cross-platform directory symlinking
<!--@shields('npm')-->
[](https://www.npmjs.com/package/symlink-dir)
<!--/@-->
* 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
```sh
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`:
```sh
# from -> to
symlink-dir . node_modules/my-package
```
## API Usage
<!--@example('./example.js')-->
```js
'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](./LICENSE) © [Zoltan Kochan](https://www.kochan.io)