copy-webpack-plugin
Version:
Copy files and directories in webpack
108 lines (83 loc) • 2.95 kB
Markdown
## Copy Webpack Plugin
This is a [webpack](http://webpack.github.io/) 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
```javascript
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
[](https://drone.io/github.com/kevlened/copy-webpack-plugin/latest)
Run `npm test`
### License
MIT