@farmfe/plugin-url
v0.0.6
Published
🍣 A farm plugin which imports files as data-URIs or ES Modules.
Downloads
5,091
Readme
@farmfe/plugin-url
🍣 A farm plugin which imports files as data-URIs or ES Modules.
Requirements
This plugin requires an LTS Node version (v18.0.0+) and farm v1.0.0+.
Install
Using npm:
npm install @farmfe/plugin-url --save-dev
Usage
Create a farm.config.js
configuration file and import the plugin:
import { defineConfig } from '@farmfe/core';
export default defineConfig({
plugins: [
[
'@farmfe/plugin-url',
{},
],
],
});
With an accompanying file src/index.js
, the local image.svg
file would now be importable as seen below:
// src/index.js
import svg from './image.svg';
console.log(`svg contents: ${svg}`);
Options
exclude
Type: String
| Array[...String]
Default: null
A picomatch pattern, or array of patterns, which specifies the files in the build the plugin should ignore. By default no files are ignored.
include
Type: String
| Array[...String]
Default: [".*\.svg$",".*\.png$",".*\.jp(e)?g$", ".*\.gif$", ".*\.webp$",]
A picomatch pattern, or array of patterns, which specifies the files in the build the plugin should operate on. By default .svg, .png, .jpg, .jpeg, .gif and .webp files are targeted.
limit
Type: Number
Default: 14336
(14kb)
The file size limit for inline files. If a file exceeds this limit, it will be copied to the destination folder and the hashed filename will be provided instead. If limit
is set to 0
all files will be copied.
publicPath
Type: String
Default: (empty string)
A string which will be added in front of filenames when they are not inlined but are copied.
emitFiles
Type: Boolean
Default: true
If false
, will prevent files being emitted by this plugin. This is useful for when you are using Rollup to emit both a client-side and server-side bundle.
fileName
Type: String
Default: '[hash][extname]'
If emitFiles
is true
, this option can be used to rename the emitted files. It accepts the following string replacements:
[hash]
- The hash value of the file's contents[name]
- The name of the imported file (without its file extension)[extname]
- The extension of the imported file (including the leading.
)[dirname]
- The parent directory name of the imported file (including trailing/
)
sourceDir
Type: String
Default: (empty string)
When using the [dirname]
replacement in fileName
, use this directory as the source directory from which to create the file path rather than the parent directory of the imported file. For example:
src/path/to/file.js
import png from './image.png';
rollup.config.js
url({
fileName: '[dirname][hash][extname]',
sourceDir: path.join(__dirname, 'src')
});
Emitted File: path/to/image.png
destDir
Type: String
Default: (empty string)
The destination dir to copy assets, usually used to rebase the assets according to HTML files.