diff options
| author | ruki <waruqi@gmail.com> | 2018-11-08 00:38:48 +0800 |
|---|---|---|
| committer | ruki <waruqi@gmail.com> | 2018-11-07 21:53:09 +0800 |
| commit | 26105034da4fcce7ac883c899d781f016559310d (patch) | |
| tree | c459a5dc4e3aa0972d9919033ece511ce76dd129 /node_modules/vuepress-html-webpack-plugin/lib/loader.js | |
| parent | 2c77f00f1a7ecb6c8192f9c16d3b2001b254a107 (diff) | |
| download | xmake-docs-26105034da4fcce7ac883c899d781f016559310d.tar.gz xmake-docs-26105034da4fcce7ac883c899d781f016559310d.zip | |
switch to vuepress
Diffstat (limited to 'node_modules/vuepress-html-webpack-plugin/lib/loader.js')
| -rw-r--r-- | node_modules/vuepress-html-webpack-plugin/lib/loader.js | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/node_modules/vuepress-html-webpack-plugin/lib/loader.js b/node_modules/vuepress-html-webpack-plugin/lib/loader.js new file mode 100644 index 00000000..c1062d1f --- /dev/null +++ b/node_modules/vuepress-html-webpack-plugin/lib/loader.js @@ -0,0 +1,35 @@ +/* This loader renders the template with underscore if no other loader was found */ +'use strict'; + +const _ = require('lodash'); +const loaderUtils = require('loader-utils'); + +module.exports = function (source) { + if (this.cacheable) { + this.cacheable(); + } + const allLoadersButThisOne = this.loaders.filter(function (loader) { + // Loader API changed from `loader.module` to `loader.normal` in Webpack 2. + return (loader.module || loader.normal) !== module.exports; + }); + // This loader shouldn't kick in if there is any other loader + if (allLoadersButThisOne.length > 0) { + return source; + } + // Skip .js files + if (/\.js$/.test(this.resourcePath)) { + return source; + } + + // The following part renders the tempalte with lodash as aminimalistic loader + // + // Get templating options + const options = this.query !== '' ? loaderUtils.parseQuery(this.query) : {}; + const template = _.template(source, _.defaults(options, { variable: 'data' })); + // Require !!lodash - using !! will disable all loaders (e.g. babel) + return 'var _ = require(' + loaderUtils.stringifyRequest(this, '!!' + require.resolve('lodash')) + ');' + + 'module.exports = function (templateParams) { with(templateParams) {' + + // Execute the lodash template + 'return (' + template.source + ')();' + + '}}'; +}; |
