Skip to content

NPM package to copy assets from node_modules to a specified directory

License

Notifications You must be signed in to change notification settings

justeat/f-copy-assets

Repository files navigation

f-copy-assets 🐻

npm version Build Status Coverage Status

A module that copies assets from node_modules to a specified destination directory, using promises

Usage

const copyAssets = require('@justeat/f-copy-assets');

const options = {
  pkgSrcGlob: 'node_modules/@justeat/*/',
  dest: 'assets/',
  verbose: true,
  logger: gutil.log
};

copyAssets(options)

Module Options

pkgSrcGlob

default: "node_modules/*/"

Glob to match directory (or directories) containing packages from which will be copied if they are found.

dest

default: "dist"

The directory to copy files to.

verbose

default: false

Whether or not to log the files that are being copied.

logger

default: console.log

If verbose, the function to use for logging.

Specifying assets to be copied

There are a few different ways this can be configured.

Basic

{
  "assets": {
    "root": "dist/",
    "glob": "img/**/*.{png,svg}"
  }
}

All files matching the glob "dist/img/**/*.{png,svg}" will be copied into an img directory in the dest directory.

Specify a "dest" directory

{
  "assets": {
    "root": "dist/",
    "glob": "img/**/*.{png,svg}",
    "dest": "./"
  }
}

All files matching the glob "dist/img/**/*.{png,svg}" will be copied into an img directory in the root of the project.

Multiple asset configurations

{
  "assets": [
    {
      "root": "dist/",
      "glob": "img/**/*.{png,svg}"
    },
    {
      "root": "src/",
      "glob": "templates/**/*",
      "dest": "./"
    }
  ]
}

All files matching the glob "dist/img/**/*.{png,svg}" will be copied into an img directory in the dest directory, and all files matching the glob "src/templates/**/*" will be copied into a templates directory in the root of the project.

Assets Options

root

Root directory to search for assets. The file structure under "root" will be preserved, so in this example, copied assets would be found in "assets/img/...".

glob

Specify a glob pattern to search for assets which should be copied.

dest

Specify the directory that the matched assets should be copied into. This option is not required — it will default to the dist option within the module options.