Ecosyste.ms: Awesome

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

Awesome Lists | Featured Topics | Projects

https://github.com/planjs/webpack-upload-loader

Webpack resource upload replacement resource path
https://github.com/planjs/webpack-upload-loader

Last synced: 23 days ago
JSON representation

Webpack resource upload replacement resource path

Awesome Lists containing this project

README

        

# @planjs/webpack-upload-loader

The `@planjs/webpack-upload-loader` resolves `import`/`require()` on a file into a remote address

## Getting Started

To begin, you'll need to install `@planjs/webpack-upload-loader`:

```console
$ npm install @planjs/webpack-upload-loader --save-dev
```

Import (or `require`) the target file(s) in one of the bundle's files:

**file.js**

```js
import img from './assets/logo.png';
```

Then add the loader to your `webpack` config. For example:

**webpack.config.js**

```js
module.exports = {
module: {
rules: [
{
test: /\.(png|jpe?g|gif)$/i,
use: [
{
loader: '@planjs/webpack-upload-loader',
},
],
},
],
},
};
```

> ℹ️ The current loader must be executed before `file-loader` and `url-loader`

## Options

### `esModule`

Type: `Boolean`
Default: `true`

By default, `@planjs/webpack-upload-loader` generates JS modules that use the ES modules syntax.
There are some cases in which using ES modules is beneficial, like in the case of [module concatenation](https://webpack.js.org/plugins/module-concatenation-plugin/) and [tree shaking](https://webpack.js.org/guides/tree-shaking/).

You can enable a CommonJS module syntax using:

**webpack.config.js**

```js
module.exports = {
module: {
rules: [
{
test: /\.(png|jpe?g|gif)$/i,
use: [
{
loader: '@planjs/webpack-upload-loader',
options: {
esModule: true,
},
},
],
},
],
},
};
```