copy-asset-in-memory-webpack-plugin
v4.0.1
Published
Copy assets in webpack memory
Downloads
60,211
Maintainers
Readme
copy-asset-in-memory-webpack-plugin
Copy assets in webpack memory
Getting Started
Installation
npm i -D copy-asset-in-memory-webpack-plugin
# or
yarn add --dev copy-asset-in-memory-webpack-plugin
Usage
// webpack.config.js
const CopyAssetInMemoryPlugin = require("copy-asset-in-memory-webpack-plugin");
module.exports = {
plugins: [
new CopyAssetInMemoryPlugin({
test: /.js$/,
to: "js",
}),
],
};
Options
test
Include all assets that pass test assertion
Type: String|RegExp|Array<String|RegExp>
. Default: undefined
include
Include all assets matching any of these conditions
Type: String|RegExp|Array<String|RegExp>
. Default: undefined
exclude
Exclude all assets matching any of these conditions
Type: String|RegExp|Array<String|RegExp>
. Default: undefiend
stage
Refer https://webpack.js.org/api/compilation-hooks/#processassets for more info.
// webpack.config.js
const { Compilation } = require("webpack");
const CopyAssetInMemoryPlugin = require("copy-asset-in-memory-webpack-plugin");
module.exports = {
plugins: [
new CopyAssetInMemoryPlugin({
test: /.js$/,
stage: Compilation.PROCESS_ASSETS_STAGE_SUMMARIZE, // Default
to: (fileName) => `${js}/filename`,
}),
],
};
to
Asset destination, allows to modify the file path.
Type: Function | string
. Default: undefined
// webpack.config.js
const CopyAssetInMemoryPlugin = require("copy-asset-in-memory-webpack-plugin");
module.exports = {
plugins: [
new CopyAssetInMemoryPlugin({
test: /.js$/,
to: (fileName) => `${js}/filename`, // copies all files into `js` folder
}),
new CopyAssetInMemoryPlugin({
test: /.svg$/,
to: "assets", // copies all files into `assets` folder
}),
],
};
transform
Allows to modify the file contents.
Type: Function
. Default: undefined
// webpack.config.js
const CopyAssetInMemoryPlugin = require("copy-asset-in-memory-webpack-plugin");
module.exports = {
plugins: [
new CopyAssetInMemoryPlugin({
test: /.js$/,
to: (fileName) => `${js}/filename`,
// The `content` argument is a [`Buffer`](https://nodejs.org/api/buffer.html) object
// it could be converted to a `String` to be processed using `content.toString()`
transform: (content) => "newContent",
}),
],
};
deleteOriginalAssets
Whether to delete the original assets or not.
Type: boolean
. Default: false
Caveats
- assets cannot be copied outside output directory
- deleting an asset via
deleteOriginalAssets
will also delete its sourcemap