webpack使用踩坑汇总
1. webpack打包es6语法报错,如...
扩展运算符不识别:
【方法一】在在babel-loader中添加presets可以解决问题,代码如下:
{ test: /\.js$/, loader: 'babel-loader', options: { presets: ['stage-3'] }, exclude: /(node_modules)/ },
以上方式确实可以解决报错问题,但有的情况下并不好用,无论添加多少preset
。被整到绝望。。。
【方法二】创建 .babelrc 内容如下:
{ "presets": ["stage-3"] }
【方法二】跟【方法一】使用的preset
完全一样,却解决了扩展运算符报错的问题。
2. webpack3与webpack4编写插件实例:
【webpack3 实例】
const pluginName = 'MyHtmlPlugin'; function MyHtmlPlugin (options) { this.options = options; } MyHtmlPlugin.prototype.apply = function(compiler) { let options = this.options; compiler.plugin('compilation', function(compilation) { compilation.plugin('html-webpack-plugin-before-html-processing', function(htmlPluginData, callback) { htmlPluginData.html += 'Hello world'; callback(null, htmlPluginData); }); }) }; module.exports = MyHtmlPlugin;
【webpack4 实例一】
const pluginName = 'MyHtmlPlugin'; function MyHtmlPlugin (options) { this.options = options; } MyHtmlPlugin.prototype.apply = function(compiler) { let options = this.options; compiler.plugin('compilation', function(compilation) { compilation.hooks.htmlWebpackPluginBeforeHtmlProcessing.tapAsync(pluginName, (htmlPluginData, callback) => { htmlPluginData.html += 'Hello world'; callback(null, htmlPluginData); }); }) }; module.exports = MyHtmlPlugin;
【webpack4 实例二】:
const pluginName = 'MyHtmlPlugin'; function MyHtmlPlugin (options) { this.options = options; } MyHtmlPlugin.prototype.apply = function(compiler) { let options = this.options; compiler.plugin('compilation', function(compilation) { compilation.plugin('html-webpack-plugin-before-html-processing', async function(htmlPluginData, callback) { return new Promise((resolve, reject) => { htmlPluginData.html += 'Hello world'; resolve(htmlPluginData); }) }); }) }; module.exports = MyHtmlPlugin;
如上:上面的 function的callback在webpack4中是不存在的,’html-webpack-plugin-before-html-processing‘ 是方法是一个异步方法,所以要么选择使用【webpack4 实例一】的方式,要么使用 async使用 Promise来实现。
相关推荐
不知道该写啥QAQ 2020-11-12
webfullStack 2020-11-09
Yvettre 2020-09-15
想做大牛的蜗牛 2020-10-30
gloria0 2020-10-26
gaojie0 2020-09-11
SelinaChan 2020-08-14
不知道该写啥QAQ 2020-08-09
gloria0 2020-08-09
不知道该写啥QAQ 2020-08-02
hline 2020-07-29
SelinaChan 2020-07-28
wangdianyong 2020-07-23
webpackvuees 2020-07-23
yqoxygen 2020-07-20
不知道该写啥QAQ 2020-07-18
waterv 2020-07-18
81463166 2020-07-17