Webpack定制插件来定义一个模块

我正在尝试为Webpack编写一个小的自定义插件,它将构build一个自定义的Modernizr对象并将其公开。 我发现这个插件和这个加载器 ,但加载器似乎hacky(它需要一个空文件.modernizrrc即使我直接传递选项),插件只能创build一个单独的文件。

我从前面的插件中借用了一些代码,但是不知道最后一步(如何在构build的文件中公开Modernizr ):

 const modernizr = require('modernizr'), ConcatSource = require('webpack-sources/lib/ConcatSource'), CachedSource = require('webpack-sources/lib/CachedSource'); class BuildModernizrPlugin { constructor(props = {}) { let plugin = this; plugin._props = props; } apply(compiler) { let plugin = this; compiler.plugin('after-compile', (compiler, callback) => { modernizr.build(plugin._props, result => { plugin._modernizr = result; callback(); }); }); compiler.plugin('emit', (compilation, callback) => { let source = new ConcatSource(); source.add(plugin._modernizr); compilation.assets['modernizr.js'] = new CachedSource(source); callback(); }); } } 

webpackconfiguration

 { //... plugins: [ new BuildModernizrPlugin({ options: [ 'setClasses' ], 'feature-detects': [ 'es6/promises' ] }) ] } 

然而,它似乎创build一个单独的modernizr.js文件,而我想Modernizr代码embedded到我的输出文件。 任何帮助深表感谢。