# copy-dereference

> Copy files and directories, dereferencing symlinks and preserving last-modified times

Latest version **1.0.0** (published 2014-07-19) · MIT license · 0 weekly downloads

## Install

```sh
npm install copy-dereference
pnpm add copy-dereference
yarn add copy-dereference
bun add copy-dereference
```

## Health

**Score 15/100 (F)** — status: abandoned.

Positive: no vulnerabilities.

Warnings: low downloads; no types; no esm support.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 1.0.0 |
| Published | 2014-07-19 |
| First published | 2014-07-19 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | none |
| Module format | CommonJS |
| Dependencies | 0 |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 0 |
| Author | Jo Liss |
| Maintainers | joliss |

## Links

- npm: https://www.npmjs.com/package/copy-dereference
- Repository: https://github.com/broccolijs/node-copy-dereference
- Issues: https://github.com/broccolijs/node-copy-dereference/issues
- npm.io page: https://npm.io/package/copy-dereference

## Recent versions

- 1.0.0 (latest) — 2014-07-19

## README

# node-copy-dereference

Copy a file or directory, dereferencing symlinks in the process, and
preserving last-modified times and file modes.

Made for use by Broccoli and Broccoli plugins.

## Installation

```sh
npm install --save copy-dereference
```

## Example

```js
var copyDereferenceSync = require('copy-dereference').sync;

copyDereferenceSync('src_dir/some_file.txt', 'dest_dir/some_file.txt');
copyDereferenceSync('src_dir/some_dir', 'dest_dir/some_dir');
```

## Description

```js
copyDereferenceSync(srcPath, destPath)
```

Copy the file or directory at `srcPath` to `destPath`.

If `srcPath` is a symlink, or if there is a symlink somewhere underneath the
directory at `srcPath`, it will be dereferenced, that is, it will be replaced
with the thing it points to.

File & directory last-modified times as well as file modes (permissions &
executable bit) will be preserved.

We throw an exception if there are any broken symlinks at or beneath
`srcPath`, if `srcPath` does not exist, of if `destPath`'s parent directory
does not exist.

Furthermore, we throw an exception if `destPath` already exists. Thus in
contrast to Unix `cp`, the following will fail:

```js
// dest_dir already exists, and we might expect dest_dir/some_dir to be
// created. This does not work; pass 'dest_dir/some_dir' instead.
copyDereferenceSync('src_dir/some_dir', 'dest_dir');
```

File types other than files, directories and symlinks (such as device files or
sockets) are not supported and will cause an exception.

## Notes

* There intentionally isn't an asynchronous version. It's not clear that we
need or want one. Before sending a patch to add an async version, please share
your use case on the issue tracker.

---
_Source: https://npm.io/package/copy-dereference · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
