1.2.1 • Published 21 days ago

copy-file-util v1.2.1

Weekly downloads
-
License
MIT
Repository
github
Last release
21 days ago

copy-file-util

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.

A) Setup

Install package for node:

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

B) Usage

1. npm package.json scripts

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

Parameters:

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

Example package.json scripts:

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

2. 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.

3. 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 | | --note | Place to add a comment only for humans. | string | | --quiet | Suppress informational messages. | N/A | | --no-overwrite | Abort if target file already exists. | N/A |

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 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.

4. 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/app.js dist/app-v{{package.version}}.js Creates a copy of app.js named something like 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.log('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 named 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

1.2.1

21 days ago

1.2.0

2 months ago

1.1.3

4 months ago

1.1.1

9 months ago

1.1.2

8 months ago

1.1.0

11 months ago

1.0.1

11 months ago

1.0.0

1 year ago

0.1.7

1 year ago

0.1.4

2 years ago

0.1.3

2 years ago

0.1.6

1 year ago

0.1.5

2 years ago

0.1.2

2 years ago

0.1.1

2 years ago

0.1.0

2 years ago

0.0.2

2 years ago