Security News
ESLint is Now Language-Agnostic: Linting JSON, Markdown, and Beyond
ESLint has added JSON and Markdown linting support with new officially-supported plugins, expanding its versatility beyond JavaScript.
copy-node-modules
Advanced tools
Copy all modules listed in dependencies
or/and devDependencies
field of package.json
to destination directory.
The procedure:
package.json
from source directory and read dependencies
or devDependencies
field.Modern applications use lots of modules, each module depends on more modules resulting in hundreds of modules being installed when typing npm install
. This module will help you to save time from slow npm install
when you want to pack/deploy your application to a directory which contains all needed modules.
It will save you a bunch of time to deploy a stand-alone application from existing development directory, no need to fetch all modules from remote repository.
yarn add copy-node-modules --dev
or
npm install copy-node-modules --save-dev
ES6+ environment:
const copyNodeModules = require('copy-node-modules');
ES6+ environment with import
support:
import copyNodeModules from 'copy-node-modules';
ES5
var copyNodeModules = require('copy-node-modules');
srcDir
: source directory containing package.json
file.
dstDir
: destination directory to copy modules to (modules will be copied to dstDir/node_modules
directory).
options
:
devDependencies
: boolean value, defaults to false, showing whether modules in devDependencies
field of package.json
should also be copied (when it's set to true).concurrency
: integer value, max number of root packages whose files are being copied concurrently.filter
: RegExp
or function that accepts one value (the full path) and returns a boolean (copy on true).callback(err, results)
: A callback which is called when all copy tasks have finished or error occurs, results
is an array contains copied modules, each item is an object as {name: 'xxx', version: 'xxx'}
const copyNodeModules = require('copy-node-modules');
const srcDir = '/somewhere/project';
const dstDir = '/somewhere/project/dist';
copyNodeModules(srcDir, dstDir, { devDependencies: false }, (err, results) => {
if (err) {
console.error(err);
return;
}
Object.keys(results).forEach(name => {
const version = results[name];
console.log(`Package name: ${name}, version: ${version}`);
});
});
const copyNodeModules = require('copy-node-modules');
const srcDir = '/somewhere/project';
const dstDir = '/somewhere/project/dist';
// Filter method that will ignore node_module folders in a node module
const filter = path => {
const firstIndex = path.indexOf('node_modules');
return v.indexOf('node_modules', firstIndex + 1) === -1;
}
copyNodeModules(srcDir, dstDir, { devDependencies: false, filter }, (err, results) => {
if (err) {
console.error(err);
return;
}
Object.keys(results).forEach(name => {
const version = results[name];
console.log(`Package name: ${name}, version: ${version}`);
});
});
copy-node-modules src_dir dest_dir [-d|--dev] [-c|--concurrency] [-v|--verbose] [-f|--filter]
src_dir
: source directory containing package.json
file.dest_dir
: destination directory to copy modules to (modules will be copied to dest_dir/node_modules
directory).-d|--dev
: whether modules in devDependencies
field of package.json
should be also copied.-c|--concurrency
: max number of root packages whose files are being copied concurrently.-v|--verbose
: verbose mode.-f|--filter
: regular Expression, files that match this expression will be copied; it also matches directories fi:
-f index.html
matches path/index.html
but not path/
and because of this index.html
is not copied.MIT
FAQs
Fast Node.js modules deployment to destination directory
The npm package copy-node-modules receives a total of 15,071 weekly downloads. As such, copy-node-modules popularity was classified as popular.
We found that copy-node-modules demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
ESLint has added JSON and Markdown linting support with new officially-supported plugins, expanding its versatility beyond JavaScript.
Security News
Members Hub is conducting large-scale campaigns to artificially boost Discord server metrics, undermining community trust and platform integrity.
Security News
NIST has failed to meet its self-imposed deadline of clearing the NVD's backlog by the end of the fiscal year. Meanwhile, CVE's awaiting analysis have increased by 33% since June.