Skip to content

center-key/copy-file-util

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

84 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

copy-file-util

logo

Copy or rename a file with optional package version number (CLI tool designed for use in npm package.json scripts)

License:MIT npm Build

copy-file-util takes a source file and copies it to a new destination.Β  The command's console output includes a timestamp and formatting helpful in build systems.

screenshot

A) Setup

Install package for node:

$ npm install --save-dev copy-file-util

B) Usage

1. Synopsis

copy-file [SOURCE] [TARGET]

Parameters:

  • The first parameter is the source file.
  • The second parameter is the target file or folder (use the --folder flag).

2. npm package.json scripts

Run copy-file from the "scripts" section of your package.json file.

Example package.json scripts:

   "scripts": {
      "pub-license": "copy-file src/LICENSE doc/license.txt",
      "backup-license": "copy-file src/LICENSE --folder backup",
   },

3. Command-line npx

Example terminal commands:

$ npm install --save-dev copy-file-util
$ copy-file src/web/api.html docs/api-manual.html

You can also install copy-file-util globally (--global) and then run it anywhere directly from the terminal.

4. CLI flags

Command-line flags:

Flag Description Values
--cd Change working directory before starting copy. string
--folder Indicates the target is a folder. N/A
--move Delete the source file after copying it. N/A
--no-overwrite Abort if target file already exists. N/A
--note Place to add a comment only for humans. string
--platform-eol Save target file with OS dependent line endings. N/A
--quiet Suppress informational messages. N/A
--remove-sem-ver Deletes text like 'v1.2.3' to avoid noisy diffs. N/A

5. Examples

  • copy-file app.js app.mjs --quiet
    Displays no output.

  • copy-file app.js --folder dist
    Copies app.js into the dist folder.

  • copy-file 'src/Legal Notice.md' --folder dist
    Copies a file that has a space in its filename.

  • copy-file node_modules/ui-xlib/colors.less --folder src/css --platform-eol
    Copies colors.less into your project and converts the file's EOL characters to \n for LF on Unix and \r\n for CRLF on Windows.

  • copy-file app.js --move --folder dist
    Like the mv Unix command.

  • copy-file default-config.json settings/config.json --no-overwrite
    Performs a safe copy that aborts if the settings/config.json file already exists.

Note

Single quotes in commands are normalized so they work cross-platform and avoid the errors often encountered on Microsoft Windows.

Note

To copy multiple files consider using copy-folder-util.Β  It supports commands like the following to copy all .jpg files from one folder to another folder:
copy-folder src/website --ext=.jpg docs

6. Template variables

The target parameter can contain template variables, like {{package.version}} and {{package.name}}, which will be replaced with values with values from your project's package.json file.

Example:

  • copy-file build/my-app.js dist/my-app-v{{package.version}}.js
    Creates a copy of my-app.js named something like my-app-v1.2.3.js based on the version of your project.

C) Application Code

Even though copy-file-util is primarily intended for build scripts, the package can be used programmatically in ESM and TypeScript projects.

Example:

import { copyFile } from 'copy-file-util';

const result = copyFile.cp('src/web/api.html' { targetFile: 'docs/api-manual.html' });
console.info('Execution time:', result.duration, 'ms');

See the TypeScript Declarations at the top of copy-file.ts for documentation.



CLI Build Tools for package.json

  • πŸŽ‹ add-dist-header:Β  Prepend a one-line banner comment (with license notice) to distribution files
  • πŸ“„ copy-file-util:Β  Copy or rename a file with optional package version number
  • πŸ“‚ copy-folder-util:Β  Recursively copy files from one folder to another folder
  • πŸͺΊ recursive-exec:Β  Run a command on each file in a folder and its subfolders
  • πŸ” replacer-util:Β  Find and replace strings or template outputs in text files
  • πŸ”’ rev-web-assets:Β  Revision web asset filenames with cache busting content hash fingerprints
  • πŸš† run-scripts-util:Β  Organize npm package.json scripts into groups of easy to manage commands
  • 🚦 w3c-html-validator:Β  Check the markup validity of HTML files using the W3C validator

Feel free to submit questions at:
github.com/center-key/copy-file-util/issues

MIT License

About

πŸ“„ Copy or rename a file (CLI for package.json scripts)

Topics

Resources

License

Stars

Watchers

Forks

Contributors