Vue开启Gzip打包异常:webpack打包报错Cannot read property ‘emit‘ of undefined
Vue开启Gzip打包异常:webpack打包报错Cannot read property 'emit' of undefined
相关代码
const CompressionPlugin = require('compression-webpack-plugin')
webpackConfig.plugins.push(
var path = require('path')
var utils = require('./utils')
var webpack = require('webpack')
var config = require('../config')
var merge = require('webpack-merge')
var baseWebpackConfig = require('./webpack.base.conf')
var CopyWebpackPlugin = require('copy-webpack-plugin')
var HtmlWebpackPlugin = require('html-webpack-plugin')
var ExtractTextPlugin = require('extract-text-webpack-plugin')
var OptimizeCSSPlugin = require('optimize-css-assets-webpack-plugin')
var CompressionWebpackPlugin = require('compression-webpack-plugin');var env = config.build.env;
var productionGzipExtensions = ['js','css','html','svg','png','less','jpg','jpeg','woff','ttf','woff2','ico',
];var webpackConfig = merge(baseWebpackConfig, {module: {rules: utils.styleLoaders({sourceMap: config.build.productionSourceMap,extract: true})},devtool: config.build.productionSourceMap ? '#source-map' : false,output: {path: config.build.assetsRoot,filename: utils.assetsPath('js/[name].[chunkhash].js'),chunkFilename: utils.assetsPath('js/[id].[chunkhash].js')},plugins: [// http://vuejs.github.io/vue-loader/en/workflow/production.htmlnew webpack.DefinePlugin({'process.env': env}),// new CompressionWebpackPlugin({// algorithm: 'gzip',// test: productionGzipExtensions,// threshold: 0,// minRatio: 0.8,// }),new webpack.optimize.UglifyJsPlugin({compress: {warnings: false},sourceMap: false}),// extract css into its own filenew ExtractTextPlugin({filename: utils.assetsPath('css/[name].[contenthash].css')}),// Compress extracted CSS. We are using this plugin so that possible// duplicated CSS from different components can be deduped.new OptimizeCSSPlugin({cssProcessorOptions: {safe: true}}),// generate dist index.html with correct asset hash for caching.// you can customize output by editing /index.html// see https://github.com/ampedandwired/html-webpack-pluginnew HtmlWebpackPlugin({filename: config.build.index,template: 'index.html',inject: true,minify: {removeComments: true,collapseWhitespace: true,removeAttributeQuotes: true// more options:// https://github.com/kangax/html-minifier#options-quick-reference},// necessary to consistently work with multiple chunks via CommonsChunkPluginchunksSortMode: 'dependency'}),// keep module.id stable when vender modules does not changenew webpack.HashedModuleIdsPlugin(),// split vendor js into its own filenew webpack.optimize.CommonsChunkPlugin({name: 'vendor',minChunks: function(module, count) {// any required modules inside node_modules are extracted to vendorreturn (module.resource &&/\.js$/.test(module.resource) &&module.resource.indexOf(path.join(__dirname, '../node_modules')) === 0)}}),// extract webpack runtime and module manifest to its own file in order to// prevent vendor hash from being updated whenever app bundle is updatednew webpack.optimize.CommonsChunkPlugin({name: 'manifest',chunks: ['vendor']}),// copy custom static assetsnew CopyWebpackPlugin([{from: path.resolve(__dirname, '../static'),to: config.build.assetsSubDirectory,ignore: ['.*']}])]
})if (config.build.productionGzip) {var CompressionWebpackPlugin = require('compression-webpack-plugin')webpackConfig.plugins.push(new CompressionWebpackPlugin({algorithm: 'gzip',test: new RegExp('\\.(' +config.build.productionGzipExtensions.join('|') +')$'),threshold: 1024,minRatio: 0.8}))
}if (config.build.bundleAnalyzerReport) {var BundleAnalyzerPlugin = require('webpack-bundle-analyzer').BundleAnalyzerPluginwebpackConfig.plugins.push(new BundleAnalyzerPlugin())
}module.exports = webpackConfig
错误如下
compiler.hooks.emit.tapAsync({ name: 'CompressionPlugin' }, emit);
TypeError: Cannot read property 'emit' of undefined
at CompressionPlugin.apply (C:\MyWayProject\2018\vue\ehrAdmin\node_modules\compression-webpack-plugin\dist\index.js:175:20)
解决方案
把compression-webpack-plugin降到1.1.12即可
//卸载原高版本compression-webpack-plugin
npm uninstall --key compression-webpack-plugin
//新安装低版本compression-webpack-plugin
npm install --save-dev compression-webpack-plugin@1.1.12
参考资料:https://segmentfault.com/q/1010000016321028
Vue开启Gzip打包异常:webpack打包报错Cannot read property ‘emit‘ of undefined相关推荐
- vue 报错 Cannot read property ‘__ob__‘ of undefined的解决方法
vue 报错 Cannot read property '__ob__' of undefined的解决方法 参考文章: (1)vue 报错 Cannot read property '__ob__' ...
- vue echarts使用map地图 引入china.js报错Cannot read property ‘echarts’ of undefined
下载china.js导入项目中引入,会报错Cannot read property 'echarts' of undefined import Echarts from "echarts&q ...
- 事件监听一直报错Cannot set property 'display' of undefined
为什么80%的码农都做不了架构师?>>> css ↓ .wechatBtn {position: relative;} .wechat {position: absolute; ...
- DateTimePicker 日期时间选择器报错 Cannot read property ‘getHours‘ of undefined, 无法选中`[__ob_: observer__]`时做判断
我在一次开发中遇到了这个情况:使用DateTimePicker 日期时间选择器,出现无法选中, 报错 Cannot read property 'getHours' of undefined, 这个原 ...
- uniapp 小程序报错 Cannot read property ‘forceUpdate‘ of undefined
uniapp 小程序报错 Cannot read property 'forceUpdate' of undefined 1.问题: 解决:配置小程序的ID manifest.json的文件
- js报错- cannot set property xxx of undefined
case1 报错代码 quizList[index] = currentQuiz; quizList[index].learningItem = item; 报错内容 Cannot read prop ...
- vue 报错 Cannot read property ‘_wrapper‘ of undefined
vue项目中,使用了各种插件和ui库,有时候会出现 Cannot read property '_wrapper' of undefined 这样的报错,一开始还以为是引用的插件报错, 其实是自定义 ...
- cesium CLAMP_TO_GROUND 报错 Cannot read property ‘globe‘ of undefined
billboardCollection 需要添加heightReference: Cesium.HeightReference.CLAMP_TO_GROUND var viewer = new Ces ...
- 微信小程序接入百度统计报错 Cannot read property ‘mtj‘ of undefined
参考文章微信小程序如何接入百度统计并且自定义事件分析_improvement-CSDN博客_百度统计 自定义事件 接入百度统计,遇到了几个坑 1.第一个坑--微信小程序后台配置了https://hmm ...
最新文章
- Swift - 经纬度位置坐标与真实地理位置相互转化
- 2017第17周五当前困境思考2
- Longest Substring Without Repeating Characters
- 如何优化 Linux系统
- linux 目录操作
- 30-- A 代码记录分析
- 【ArcGIS遇上Python】Python批量将多个文件夹下的多个影像数据镶嵌至新栅格
- php 异常 重试,Python中异常重试的解决方案详解
- CCScene切换的所有特效(28种)以及设置屏幕横竖屏!
- 【JQGRID DOCUMENTATION】.学习笔记.5.Form Editing
- 【bzoj 4455】小星星(树型DP+容斥原理+dfs建树和计算的2种方式)
- 蓝牙设置种常用的Intent
- query string parameter前端怎么传参_Substrate 前端开发-1: 用 Polkadot-JS API 轻松搭建前端
- 20175312 2018-2019-2 实验五 网络编程与安全 实验报告
- vue json对象转数组_年薪百万之路--第六十七天 Vue入门
- 如何下载高清卫星地图
- 计算几何(基础部分)
- WiFi漫游卡顿严重,如何有效改善实现无缝漫游
- 进程间通信-消息机制
- WiFi_数据速率计算公式