Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

copy-node-modules

Package Overview
Dependencies
Maintainers
1
Versions
13
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

copy-node-modules

Fast Node.js modules deployment to destination directory

  • 1.1.1
  • latest
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
17K
increased by41.9%
Maintainers
1
Weekly downloads
 
Created
Source

copy-node-modules - fast Node.js modules deployment to destination directory

NPM version Downloads/month

Copy all modules listed in dependencies or/and devDependencies field of package.json to destination directory.

The procedure:

  1. Read package.json from source directory and read dependencies or devDependencies field.
  2. Search for existing modules and ther dependencies in source directory.
  3. Copy all modules to destination directory.

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.

Installation

yarn add copy-node-modules --dev

or

npm install copy-node-modules --save-dev

Programmatic Usage

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');

copyNodeModules(srcDir, dstDir, [options], callback)

  • 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'}

Examples

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}`);
  });
});

Example with a filter method

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}`);
    });
});

CLI Usage

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.

License

MIT

Keywords

FAQs

Package last updated on 09 Dec 2018

Did you know?

Socket

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.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc