From 26105034da4fcce7ac883c899d781f016559310d Mon Sep 17 00:00:00 2001 From: ruki Date: Thu, 8 Nov 2018 00:38:48 +0800 Subject: switch to vuepress --- node_modules/copy-webpack-plugin/README.md | 449 +++++++++++++++++++++++++++++ 1 file changed, 449 insertions(+) create mode 100644 node_modules/copy-webpack-plugin/README.md (limited to 'node_modules/copy-webpack-plugin/README.md') 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] + +
+ + + +

Copy Webpack Plugin

+

Copies individual files or entire directories to the build directory

+
+ +

Install

+ +```bash +npm i -D copy-webpack-plugin +``` + +

Usage

+ +**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) +] +``` + +

Options

+ +|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 } + ) +] +``` + +

Maintainers

+ + + + + + + + + + +
+ + +
+ Juho Vepsäläinen +
+
+ + +
+ Joshua Wiens +
+
+ + +
+ Michael Ciniawsky +
+
+ + +
+ Alexander Krasnoyarov +
+
+ + +[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 -- cgit v1.2.3