Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/sibiraj-s/copy-asset-in-memory-webpack-plugin

Copy assets in webpack memory
https://github.com/sibiraj-s/copy-asset-in-memory-webpack-plugin

copy-webpack-plugin webpack webpack-plugin

Last synced: about 1 month ago
JSON representation

Copy assets in webpack memory

Awesome Lists containing this project

README

        

# copy-asset-in-memory-webpack-plugin

[![Tests](https://github.com/sibiraj-s/copy-asset-in-memory-webpack-plugin/workflows/Tests/badge.svg)](https://github.com/sibiraj-s/copy-asset-in-memory-webpack-plugin/actions)
[![License](https://badgen.net/github/license/sibiraj-s/copy-asset-in-memory-webpack-plugin)](https://github.com/sibiraj-s/copy-asset-in-memory-webpack-plugin)
[![Version](https://badgen.net/npm/v/copy-asset-in-memory-webpack-plugin)](https://npmjs.com/copy-asset-in-memory-webpack-plugin)
[![Node Version](https://badgen.net/npm/node/copy-asset-in-memory-webpack-plugin)](https://npmjs.com/copy-asset-in-memory-webpack-plugin)
[![Webpack Version](https://badgen.net/badge/webpack/%3E=5%2E20/orange)](https://webpack.js.org/)

> Copy assets in webpack memory





## Getting Started

### Installation

```bash
npm i -D copy-asset-in-memory-webpack-plugin
# or
yarn add --dev copy-asset-in-memory-webpack-plugin
```

### Usage

```js
// 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`. Default: `undefined`

#### include

Include all assets matching any of these conditions

Type: `String|RegExp|Array`. Default: `undefined`

#### exclude

Exclude all assets matching any of these conditions

Type: `String|RegExp|Array`. Default: `undefiend`

#### stage

Refer https://webpack.js.org/api/compilation-hooks/#processassets for more info.

```js
// 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`

```js
// 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`

```js
// 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

### Related Plugins

- [replace-asset-name-webpack-plugin](https://github.com/sibiraj-s/replace-asset-name-webpack-plugin)