aboutsummaryrefslogtreecommitdiff
path: root/node_modules/copy-webpack-plugin/README.md
diff options
context:
space:
mode:
authorruki <waruqi@gmail.com>2018-11-08 00:38:48 +0800
committerruki <waruqi@gmail.com>2018-11-07 21:53:09 +0800
commit26105034da4fcce7ac883c899d781f016559310d (patch)
treec459a5dc4e3aa0972d9919033ece511ce76dd129 /node_modules/copy-webpack-plugin/README.md
parent2c77f00f1a7ecb6c8192f9c16d3b2001b254a107 (diff)
downloadxmake-docs-26105034da4fcce7ac883c899d781f016559310d.tar.gz
xmake-docs-26105034da4fcce7ac883c899d781f016559310d.zip
switch to vuepress
Diffstat (limited to 'node_modules/copy-webpack-plugin/README.md')
-rw-r--r--node_modules/copy-webpack-plugin/README.md449
1 files changed, 449 insertions, 0 deletions
diff --git a/node_modules/copy-webpack-plugin/README.md b/node_modules/copy-webpack-plugin/README.md
new file mode 100644
index 00000000..48782730
--- /dev/null
+++ b/node_modules/copy-webpack-plugin/README.md
@@ -0,0 +1,449 @@
+[![npm][npm]][npm-url]
+[![node][node]][node-url]
+[![deps][deps]][deps-url]
+[![test][test]][test-url]
+[![coverage][cover]][cover-url]
+[![chat][chat]][chat-url]
+
+<div align="center">
+ <a href="https://github.com/webpack/webpack">
+ <img width="200" height="200"
+ src="https://webpack.js.org/assets/icon-square-big.svg">
+ </a>
+ <h1>Copy Webpack Plugin</h1>
+ <p>Copies individual files or entire directories to the build directory</p>
+</div>
+
+<h2 align="center">Install</h2>
+
+```bash
+npm i -D copy-webpack-plugin
+```
+
+<h2 align="center">Usage</h2>
+
+**webpack.config.js**
+```js
+const CopyWebpackPlugin = require('copy-webpack-plugin')
+
+const config = {
+ plugins: [
+ new CopyWebpackPlugin([ ...patterns ], options)
+ ]
+}
+```
+
+> ℹ️ If you want `webpack-dev-server` to write files to the output directory during development, you can force it with the [`write-file-webpack-plugin`](https://github.com/gajus/write-file-webpack-plugin).
+
+### `Patterns`
+
+A simple pattern looks like this
+
+```js
+{ from: 'source', to: 'dest' }
+```
+
+Or, in case of just a `from` with the default destination, you can also use a `{String}` as shorthand instead of an `{Object}`
+
+```js
+'source'
+```
+
+|Name|Type|Default|Description|
+|:--:|:--:|:-----:|:----------|
+|[`from`](#from)|`{String\|Object}`|`undefined`|Globs accept [minimatch options](https://github.com/isaacs/minimatch)|
+|[`fromArgs`](#fromArgs)|`{Object}`|`{ cwd: context }`|See the [`node-glob` options](https://github.com/isaacs/node-glob#options) in addition to the ones below|
+|[`to`](#to)|`{String\|Object}`|`undefined`|Output root if `from` is file or dir, resolved glob path if `from` is glob|
+|[`toType`](#toType)|`{String}`|``|[toType Options](#totype)|
+|[`test`](#test)|`{RegExp}`|``|Pattern for extracting elements to be used in `to` templates|
+|[`force`](#force)|`{Boolean}`|`false`|Overwrites files already in `compilation.assets` (usually added by other plugins/loaders)|
+|[`ignore`](#ignore)|`{Array}`|`[]`|Globs to ignore for this pattern|
+|`flatten`|`{Boolean}`|`false`|Removes all directory references and only copies file names.⚠️ If files have the same name, the result is non-deterministic|
+|[`transform`](#transform)|`{Function\|Promise}`|`(content, path) => content`|Function or Promise that modifies file contents before copying|
+|[`transformPath`](#transformPath)|`{Function\|Promise}`|`(targetPath, sourcePath) => path`|Function or Promise that modifies file writing path|
+|[`cache`](#cache)|`{Boolean\|Object}`|`false`|Enable `transform` caching. You can use `{ cache: { key: 'my-cache-key' } }` to invalidate the cache|
+|[`context`](#context)|`{String}`|`options.context \|\| compiler.options.context`|A path that determines how to interpret the `from` path|
+
+### `from`
+
+**webpack.config.js**
+```js
+[
+ new CopyWebpackPlugin([
+ 'relative/path/to/file.ext',
+ '/absolute/path/to/file.ext',
+ 'relative/path/to/dir',
+ '/absolute/path/to/dir',
+ '**/*',
+ { glob: '\*\*/\*', dot: true }
+ ], options)
+]
+```
+
+### `to`
+
+**webpack.config.js**
+```js
+[
+ new CopyWebpackPlugin([
+ { from: '**/*', to: 'relative/path/to/dest/' },
+ { from: '**/*', to: '/absolute/path/to/dest/' }
+ ], options)
+]
+```
+
+### `toType`
+
+|Name|Type|Default|Description|
+|:--:|:--:|:-----:|:----------|
+|**`'dir'`**|`{String}`|`undefined`|If `from` is directory, `to` has no extension or ends in `'/'`|
+|**`'file'`**|`{String}`|`undefined`|If `to` has extension or `from` is file|
+|**`'template'`**|`{String}`|`undefined`|If `to` contains [a template pattern](https://github.com/webpack-contrib/file-loader#placeholders)|
+
+#### `'dir'`
+
+**webpack.config.js**
+```js
+[
+ new CopyWebpackPlugin([
+ {
+ from: 'path/to/file.txt',
+ to: 'directory/with/extension.ext',
+ toType: 'dir'
+ }
+ ], options)
+]
+```
+
+#### `'file'`
+
+**webpack.config.js**
+```js
+[
+ new CopyWebpackPlugin([
+ {
+ from: 'path/to/file.txt',
+ to: 'file/without/extension',
+ toType: 'file'
+ },
+ ], options)
+]
+```
+
+#### `'template'`
+
+**webpack.config.js**
+```js
+[
+ new CopyWebpackPlugin([
+ {
+ from: 'src/',
+ to: 'dest/[name].[hash].[ext]',
+ toType: 'template'
+ }
+ ], options)
+]
+```
+
+### `test`
+
+Defines a `{RegExp}` to match some parts of the file path.
+These capture groups can be reused in the name property using `[N]` placeholder.
+Note that `[0]` will be replaced by the entire path of the file,
+whereas `[1]` will contain the first capturing parenthesis of your `{RegExp}`
+and so on...
+
+**webpack.config.js**
+```js
+[
+ new CopyWebpackPlugin([
+ {
+ from: '*/*',
+ to: '[1]-[2].[hash].[ext]',
+ test: /([^/]+)\/(.+)\.png$/
+ }
+ ], options)
+]
+```
+
+### `force`
+
+**webpack.config.js**
+```js
+[
+ new CopyWebpackPlugin([
+ { from: 'src/**/*', to: 'dest/', force: true }
+ ], options)
+]
+```
+
+### `ignore`
+
+**webpack.config.js**
+```js
+[
+ new CopyWebpackPlugin([
+ { from: 'src/**/*', to: 'dest/', ignore: [ '*.js' ] }
+ ], options)
+]
+```
+
+### `flatten`
+
+**webpack.config.js**
+```js
+[
+ new CopyWebpackPlugin([
+ { from: 'src/**/*', to: 'dest/', flatten: true }
+ ], options)
+]
+```
+
+### `transform`
+
+#### `{Function}`
+
+**webpack.config.js**
+```js
+[
+ new CopyWebpackPlugin([
+ {
+ from: 'src/*.png',
+ to: 'dest/',
+ transform (content, path) {
+ return optimize(content)
+ }
+ }
+ ], options)
+]
+```
+
+#### `{Promise}`
+
+**webpack.config.js**
+```js
+[
+ new CopyWebpackPlugin([
+ {
+ from: 'src/*.png',
+ to: 'dest/',
+ transform (content, path) {
+ return Promise.resolve(optimize(content))
+ }
+ }
+ ], options)
+]
+```
+
+### `transformPath`
+
+#### `{Function}`
+
+**webpack.config.js**
+```js
+[
+ new CopyWebpackPlugin([
+ {
+ from: 'src/*.png',
+ to: 'dest/',
+ transformPath (targetPath, absolutePath) {
+ return 'newPath';
+ }
+ }
+ ], options)
+]
+```
+
+#### `{Promise}`
+
+**webpack.config.js**
+```js
+[
+ new CopyWebpackPlugin([
+ {
+ from: 'src/*.png',
+ to: 'dest/',
+ transform (targePath, absolutePath) {
+ return Promise.resolve('newPath')
+ }
+ }
+ ], options)
+]
+```
+
+
+### `cache`
+
+**webpack.config.js**
+```js
+[
+ new CopyWebpackPlugin([
+ {
+ from: 'src/*.png',
+ to: 'dest/',
+ transform (content, path) {
+ return optimize(content)
+ },
+ cache: true
+ }
+ ], options)
+]
+```
+
+### `context`
+
+**webpack.config.js**
+```js
+[
+ new CopyWebpackPlugin([
+ { from: 'src/*.txt', to: 'dest/', context: 'app/' }
+ ], options)
+]
+```
+
+<h2 align="center">Options</h2>
+
+|Name|Type|Default|Description|
+|:--:|:--:|:-----:|:----------|
+|[`debug`](#debug)|`{String}`|**`'warning'`**|[Debug Options](#debug)|
+|[`ignore`](#ignore)|`{Array}`|`[]`|Array of globs to ignore (applied to `from`)|
+|[`context`](#context)|`{String}`|`compiler.options.context`|A path that determines how to interpret the `from` path, shared for all patterns|
+|[`copyUnmodified`](#copyUnmodified)|`{Boolean}`|`false`|Copies files, regardless of modification when using watch or `webpack-dev-server`. All files are copied on first build, regardless of this option|
+
+### `debug`
+
+|Name|Type|Default|Description|
+|:--:|:--:|:-----:|:----------|
+|**`'info'`**|`{String\|Boolean}`|`false`|File location and read info|
+|**`'debug'`**|`{String}`|`false`|Very detailed debugging info|
+|**`'warning'`**|`{String}`|`true`|Only warnings|
+
+#### `'info'`
+
+**webpack.config.js**
+```js
+[
+ new CopyWebpackPlugin(
+ [ ...patterns ],
+ { debug: 'info' }
+ )
+]
+```
+
+#### `'debug'`
+
+**webpack.config.js**
+```js
+[
+ new CopyWebpackPlugin(
+ [ ...patterns ],
+ { debug: 'debug' }
+ )
+]
+```
+
+#### `'warning' (default)`
+
+**webpack.config.js**
+```js
+[
+ new CopyWebpackPlugin(
+ [ ...patterns ],
+ { debug: true }
+ )
+]
+```
+
+### `ignore`
+
+**webpack.config.js**
+```js
+[
+ new CopyWebpackPlugin(
+ [ ...patterns ],
+ { ignore: [ '*.js', '*.css' ] }
+ )
+]
+```
+
+### `context`
+
+**webpack.config.js**
+```js
+[
+ new CopyWebpackPlugin(
+ [ ...patterns ],
+ { context: '/app' }
+ )
+]
+```
+
+### `copyUnmodified`
+
+> ℹ️ By default, we only copy **modified** files during a `webpack --watch` or `webpack-dev-server` build. Setting this option to `true` will copy all files.
+
+**webpack.config.js**
+```js
+[
+ new CopyWebpackPlugin(
+ [ ...patterns ],
+ { copyUnmodified: true }
+ )
+]
+```
+
+<h2 align="center">Maintainers</h2>
+
+<table>
+ <tbody>
+ <tr>
+ <td align="center">
+ <a href="https://github.com/bebraw">
+ <img width="150" height="150" src="https://github.com/bebraw.png?v=3&s=150">
+ </br>
+ Juho Vepsäläinen
+ </a>
+ </td>
+ <td align="center">
+ <a href="https://github.com/d3viant0ne">
+ <img width="150" height="150" src="https://github.com/d3viant0ne.png?v=3&s=150">
+ </br>
+ Joshua Wiens
+ </a>
+ </td>
+ <td align="center">
+ <a href="https://github.com/michael-ciniawsky">
+ <img width="150" height="150" src="https://github.com/michael-ciniawsky.png?v=3&s=150">
+ </br>
+ Michael Ciniawsky
+ </a>
+ </td>
+ <td align="center">
+ <a href="https://github.com/evilebottnawi">
+ <img width="150" height="150" src="https://github.com/evilebottnawi.png?v=3&s=150">
+ </br>
+ Alexander Krasnoyarov
+ </a>
+ </td>
+ </tr>
+ <tbody>
+</table>
+
+
+[npm]: https://img.shields.io/npm/v/copy-webpack-plugin.svg
+[npm-url]: https://npmjs.com/package/copy-webpack-plugin
+
+[node]: https://img.shields.io/node/v/copy-webpack-plugin.svg
+[node-url]: https://nodejs.org
+
+[deps]: https://david-dm.org/webpack-contrib/copy-webpack-plugin.svg
+[deps-url]: https://david-dm.org/webpack-contrib/copy-webpack-plugin
+
+[test]: https://secure.travis-ci.org/webpack-contrib/copy-webpack-plugin.svg
+[test-url]: http://travis-ci.org/webpack-contrib/copy-webpack-plugin
+
+[cover]: https://codecov.io/gh/webpack-contrib/copy-webpack-plugin/branch/master/graph/badge.svg
+[cover-url]: https://codecov.io/gh/webpack-contrib/copy-webpack-plugin
+
+[chat]: https://img.shields.io/badge/gitter-webpack%2Fwebpack-brightgreen.svg
+[chat-url]: https://gitter.im/webpack/webpack