Nodejs Copy Directory using npm script | copyfiles npm example
This tutorial covers how to copy files with the npm script tags command in package.json
- copy files from one folder to another folder with npm scripts
- npm script to copy directory including nested directory
You can also check other posts on npm command deprecate option is deprecated There are many npm packages to copy files, In this example, I am going to use copyFiles npm package.
Advantages with npm copy
As you are not worried about remembering the copy command in the OS environment, This will take care of running on Windows, Mac, and Unix flavors
How to copy files or directories in nodejs npm scripts
First, Go to your application project, Install copyfiles dependency with the below command Note: please add this as devDependencies using —save-dev
npm install --save-dev copyfiles
Or you can also copy the below code in package..json
"devDependencies": {
"copyfiles": "latest"
},
Next, run the npm install command to reinstall all dependencies. This will install the copyfiles library and copy it to the node_modules folder.
In the package.json file, There is a script tag, add the below line of code
"scripts": {
"copy": "copyfiles source destination"
}
source
: - input source directory or regular expression files target
: - files copied to a target directory
Finally, You can script by calling the npm run copy
command in terminal
npm copyfiles examples
Let’s discuss some examples
Copy specific files into directory:
Suppose you have a javascript file in the src/assets folder. How do you copy only javascript files to the output directory?
Below is the code with npm scripts,
"copyjavascript": "copyfiles src/assets/*.js destination"
Copy folder into destination directory:
If you want to copy the assets folder, assets contain js, CSS, and images folder, these files need to be copied to the dist/assets folder
Here is the npm script command
"copyFolder": "copyfiles src/assets dest"
Copy files with not overwriting the files:
By default, copyfiles
copy and overwrite the files in the target folder,
There are an option -s
or --soft
soft copy to not override files if files exist
Here is a command
copy -s src dest
copy folders with nested path:
if you want to copy assets/sass/ to the sass-lib folder with the same nested folder structure
-u
or --up
with number is provided to maintain nested folder levels
copyfiles -u 2 "./assets/sass/\*\*" "./node_modules/sass-lib"
Nodejs copyfiles javascript code example
As of now, we have seen using copyfiles can be used as a command line or with npm scripts. You can use the server-side nodejs
First, you must import or import this library into your JavaScript codebase (ES6 versions)
var copyfiles = require("copyfiles");
Syntax:
copyfiles([filespaths], option, callbackfunction);
Files paths are the path of input and output. The path is a relative or absolute path for files or directories
Here is an example
const inputFolder = "./src/assets/";
const outputFolder = "./dist";
const copyfiles = require("copyfiles");
copyfiles([inputFolder, output], {}, (err) => {
if (err) {
console.log("Error occurred while copying", err);
}
console.log("folder(s) copied to destination");
});
Conclusion
In Conclusion, Learned how to copy files from one directory to another in nodejs application