UNPKG

@webpack-blocks/assets

Version:

Webpack block for style loader, file loader, url loader and friends.

91 lines (65 loc) • 2.69 kB
# webpack-blocks - assets [![Gitter chat](https://badges.gitter.im/webpack-blocks.svg)](https://gitter.im/webpack-blocks) [![NPM Version](https://img.shields.io/npm/v/@webpack-blocks/assets.svg)](https://www.npmjs.com/package/@webpack-blocks/assets) This is the `assets` block providing configuration for the style loader, file loader, URL loader and friends. ## Usage <!-- prettier-ignore-start --> ```js const { createConfig, match } = require('@webpack-blocks/webpack') const { css, file, url } = require('@webpack-blocks/assets') module.exports = createConfig([ css(), // or use `match()` to apply it to other files than *.css // will copy font files to build directory and link to them match(['*.eot', '*.ttf', '*.woff', '*.woff2'], [ file() ]), // will load images up to 10KB as data URL match(['*.gif', '*.jpg', '*.jpeg', '*.png', '*.svg', '*.webp'], [ url({ limit: 10000 }) ]) ]) ``` <!-- prettier-ignore-end --> In order to use CSS modules: ```js const { createConfig, match } = require('@webpack-blocks/webpack') const { css } = require('@webpack-blocks/assets') module.exports = createConfig([ match( ['*.css', '!*node_modules*'], [ css.modules({ modules: { localIdentName: '[name]--[local]--[hash:base64:5]' } }) ] ) ]) ``` ## API ### css(options: ?object) Will match `*.css` by default if not used with `match()`. You can pass all [`css-loader` options](https://github.com/webpack-contrib/css-loader). With `styleLoader` you can pass options to the [`style-loader`](https://github.com/webpack-contrib/style-loader), setting it to `false` will remove the `style-loader` from loaders. ### css.modules(options: ?object) Will match `*.css` by default if not used with `match()`. You can pass all [`css-loader` options](https://github.com/webpack-contrib/css-loader). The difference to `css()` is that it sets the following `css-loader` options by default: - `modules` option is enabled - `importLoaders` defaults to `1` - `modules.localIdentName` defaults to `'[name]--[local]--[hash:base64:5]'` in development and `'[hash:base64:10]'` in production ### file(options: ?object) Must be used with `match()`. You can pass all [`file-loader` options](https://github.com/webpack-contrib/file-loader). ### url(options: ?object) Must be used with `match()`. You can pass all [`url-loader` options](https://github.com/webpack-contrib/url-loader). We strongly recommend setting a `limit` to prevent huge files to be encoded as a data URL. ## webpack-blocks Check out the šŸ‘‰ [Main documentation](https://github.com/andywer/webpack-blocks) Released under the terms of the MIT license.