@roots/bud-build
Version:
bud.js core module
64 lines (63 loc) • 1.72 kB
JavaScript
import isBoolean from '@roots/bud-support/isBoolean';
/**
* CSS loader
*/
export const css = async ({ makeItem }) => makeItem({
ident: `css`,
loader: `css`,
}).setOptions(({ hooks: { filter } }) => ({
modules: false,
sourceMap: isBoolean(filter(`build.devtool`))
? filter(`build.devtool`)
: true,
}));
/**
* CSS module loader
*/
export const cssModule = async ({ makeItem }) => makeItem({
ident: `css-module`,
loader: `css`,
}).setOptions(({ build, hooks: { filter } }) => ({
importLoaders: build.getRule(`css-module`).getUse().length - 2,
modules: { namedExport: false },
sourceMap: isBoolean(filter(`build.devtool`))
? filter(`build.devtool`)
: true,
}));
/**
* CSV loader
*/
export const csv = async ({ makeItem }) => makeItem().setLoader(`csv`).setIdent(`csv`);
/**
* HTML loader
*/
export const html = async ({ makeItem }) => makeItem().setLoader(`html`).setIdent(`html`);
/**
* Style loader
*/
export const style = async ({ makeItem }) => makeItem().setLoader(`style`).setIdent(`style`);
/**
* Markdown loader
*/
export const md = async ({ makeItem }) => makeItem().setIdent(`md`).setLoader(`md`);
/**
* MiniCss loader
*/
export const minicss = async ({ makeItem }) => makeItem()
.setLoader(`minicss`)
.setIdent(`minicss`)
.setOptions(app => ({
publicPath: app.publicPath(),
}));
/**
* Raw loader
*/
export const raw = async ({ makeItem }) => makeItem().setLoader(`raw`).setIdent(`raw`);
/**
* file-loader
*/
export const file = async ({ makeItem }) => makeItem().setLoader(`file`).setIdent(`file`);
/**
* Yml loader
*/
export const yml = async ({ makeItem }) => makeItem().setLoader(`yml`).setIdent(`yml`);