UNPKG

gridsome-plugin-pug

Version:
39 lines (38 loc) 1.11 kB
"use strict"; /** * Infuse Pug loaders into `webpack-chain` instance. * * @param {Config} config `webpack-chain` instance * @param {Record<string, any>} pugOptions Options for `pug-plain-loader` * @param {Record<string, any>} pugLoaderOptions Options for `pug-loader` */ function infusePug(config, pugOptions, pugLoaderOptions) { const pugRule = config.module.rule('pug').test(/\.pug$/); pugRule.oneOf('pug-vue').resourceQuery(/^\?vue/) .use('pug-vue') .loader('pug-plain-loader') .options(pugOptions); pugRule.oneOf('pug') .use('pug') .loader('pug-loader') .options(pugLoaderOptions); } /** * Pug plugin for Gridsome. * * @exports * @param {any} api Gridsome API * @param {Options} options Plugin options */ function PugPlugin(api, options) { const { pug, pugLoader } = options; api.chainWebpack((config) => infusePug(config, pug, pugLoader)); } /** * Default options */ PugPlugin.defaultOptions = () => ({ pug: undefined, pugLoader: undefined }); module.exports = PugPlugin;