JSPM

  • Created
  • Published
  • Downloads 8565844
  • Score
    100M100P100Q212811F
  • License MIT

Copy files and directories in webpack

Package Exports

  • copy-webpack-plugin

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (copy-webpack-plugin) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

Copy Webpack Plugin

This is a webpack plugin that copies individual files or entire directories to the build directory.

Getting started

Install the plugin:

npm install --save-dev copy-webpack-plugin

Usage

new CopyWebpackPlugin([patterns], options)

A pattern looks like: { from: 'source', to: 'dest' }

Pattern properties:

  • from
    • is required
    • can be an absolute or path relative to the context
    • can be a file or directory
    • can be a glob
  • to
    • is optional
    • if not absolute, it's relative to the build root
    • must be a directory if from is a directory
  • toType
    • is optional
    • is ignored if from is a directory
    • defaults to 'file' if to has an extension
    • defaults to 'dir' if to doesn't have an extension
  • force
    • is optional
    • defaults to false
    • forces the plugin to overwrite files staged by previous plugins

Available options:

  • ignore
    • an array of files and directories to ignore
    • accepts globs
    • globs are evaluated on the from path, relative to the context

Examples

var CopyWebpackPlugin = require('copy-webpack-plugin');
var path = require('path');

module.exports = {
    context: path.join(__dirname, 'app'),
    plugins: [
        new CopyWebpackPlugin([
            // {output}/file.txt
            { from: 'from/file.txt' },
            
            // {output}/to/file.txt
            { from: 'from/file.txt', to: 'to/file.txt' },
            
            // {output}/to/directory/file.txt
            { from: 'from/file.txt', to: 'to/directory' },

            // Copy directory contents to {output}/
            { from: 'from/directory' },
            
            // Copy directory contents to {output}/to/directory/
            { from: 'from/directory', to: 'to/directory' },
            
            // Copy glob results to /absolute/path/
            { from: 'from/directory/**/*', to: '/absolute/path' },
            
            // {output}/file/without/extension
            {
                from: 'path/to/file.txt',
                to: 'file/without/extension',
                toType: 'file'
            },
            
            // {output}/directory/with/extension.ext/file.txt
            {
                from: 'path/to/file.txt',
                to: 'directory/with/extension.ext',
                toType: 'dir'
            }
        ], {
            ignore: [
                // Doesn't copy any files with a txt extension    
                '*.txt',
                
                // Doesn't copy any file, even if they start with a dot
                { glob: '**/*', dot: true }
            ]
        })
    ]
};

Testing

Build Status

Run npm test

License

MIT