为什么80%的码农都做不了架构师?>>>   

《vue.js的实战》这本书已经看到了后半段,今天在实现插件合并时,我完整录入了书中的代码,代码是这样的

var webpack=require('webpack');
//这个插件是用来生成html的
var HtmlwebpackPlugin=require('html-webpack-plugin');
var ExtractTextPlugin=require('extract-text-webpack-plugin');
var merge=require('webpack-merge');
var webpackBaseConfig=require('./webpack.config.js');//清空基本配置的插件列表
webpackBaseConfig.plugins=[];//用于合并两个webpack的配置文件
module.exports=merge(webpackBaseConfig,{output:{publicPath:'/dist/',//给文件名加hash值,是为了使文件名唯一,这样只要不对html文件设置缓存,上线后立即就可以加载最新的静态资源filename:'[name].[hash].js'},plugins:[new ExtractTextPlugin({filename:'[name].[hash].css',allChunks:true}),//定义当前生产环境为node环境new webpack.DefinePlugin({'process.env':{NODE_ENV:'"production"'}}),//提取模板,并保存入口html文件//这是来生成html文件的,它通过template选项来读取指定的模板index.ejs,然后输出到filename指定的文件new HtmlwebpackPlugin({filename:'../index_prod.html',template:'./index.ejs',inject:false}),new webpack.optimize.UglifyJsPlugin({compress:{  warnings:false}})]
})

后来运行的时候出现了错误

webpack.optimize.UglifyJsPlugin has been removed, please use config.optimization.minimize instead.

后来查了很多资料才知道是webpack版本的问题,在webpack4.0版本中已经废弃了之前 UglifyJsPlugin的用法,用的是config.minimize,然后怎样用optimization呢,网上资料很多,但是对于一个不熟悉nodejs的人来说,还是比较困难的,我开始以为直接把new HtmlwebpackPlugin改成optimization就行,自然而然的错了。那怎样做呢?

我们需要以下几步:

  1. 用npm安装uglifyjs-webpack-plugin插件;
  2. 将其引入:var uglifyjsPlugin=require('uglifyjs-webpack-plugin');
  3. 删除以前的写法,将optimization的JS压缩与plugins并排写在一起,注意,是并排,而不是像以前一样写在plugins里面。

最后结果如下:

ar webpack=require('webpack');
//这个插件是用来生成html的
var HtmlwebpackPlugin=require('html-webpack-plugin');
var ExtractTextPlugin=require('extract-text-webpack-plugin');
var merge=require('webpack-merge');
var webpackBaseConfig=require('./webpack.config.js');
var UglifyJsPlugin=require('uglifyjs-webpack-plugin');//清空基本配置的插件列表
webpackBaseConfig.plugins=[];//用于合并两个webpack的配置文件
module.exports=merge(webpackBaseConfig,{output:{publicPath:'/dist/',//给文件名加hash值,是为了使文件名唯一,这样只要不对html文件设置缓存,上线后立即就可以加载最新的静态资源filename:'[name].[hash].js'},plugins:[new ExtractTextPlugin({filename:'[name].[hash].css',allChunks:true}),//定义当前生产环境为node环境new webpack.DefinePlugin({'process.env':{NODE_ENV:'"production"'}}),//提取模板,并保存入口html文件//这是来生成html文件的,它通过template选项来读取指定的模板index.ejs,然后输出到filename指定的文件new HtmlwebpackPlugin({filename:'../index_prod.html',template:'./index.ejs',inject:false})],//压缩jsoptimization: {minimizer: [new UglifyJsPlugin({uglifyOptions: {compress: false}})]},
})

转载于:https://my.oschina.net/hyzccc/blog/1797358

webpack4.0版本中的js压缩问题相关推荐

  1. 关于Unity的SteamVR Plugin 2.0版本中SteamVR_Controller不见的问题

    考虑到VR设备输入更加多样性,Steam在2.0版本中去掉了旧的输入方式,不再有SteamVR_Controller这个脚本 steam关于2.0的介绍如下: https://steamcommuni ...

  2. 如何在PostgreSQL13和以下版本中使用lz4压缩文本和二进制数据

    从PG14开始,PostgreSQL已经支持LZ4 压缩功能.而PG14之前的版本,其TOAST仅支持一个压缩算法PGLZ(PG内置算法).众所周知,LZ4比PGLZ的压缩速度快很多.在不要求很高压缩 ...

  3. 设置hive的执行引擎_0506-如何将Hue4.0版本中默认执行引擎设置为Hive而非Impala

    温馨提示:如果使用电脑查看图片不清晰,可以使用手机打开文章单击文中的图片放大查看高清原图. Fayson的github: https://github.com/fayson/cdhproject 提示 ...

  4. Kafka原理——fabric1.0版本中的节点排序方法

    Kafka原理 可参考Zookeeper一起理解,后续自己在项目中实现,会再来补充一些实践的内容. Zookeeper整理:https://blog.csdn.net/yangwei256/artic ...

  5. oracle12.2+asm进程,Oracle12,1,2,0版本中遇到bug25211209

    现象描述: 12.1.0.2 集群进程 ocssd.bin 占用较高的 CPU : PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  ...

  6. metronic 4.5.7开发环境下, 在Windows 10上安装了10.16.0版本的node js之后,导致node sass无法加载...

    解决办法: 修改metronic 中的package.json文件, 将gulp-sass的依赖项版本改为3.2.1即可解决 {"name": "metronic&quo ...

  7. VMware使用OVFTool导出Esxi 6.7.0版本中的虚拟机

    一般情况在VMware ESXi 6.7.0平台上想要导出虚拟机,需关闭虚机电源,导出OVF文件,今天遇到导出进度一直卡在50%的情况,所以决定换一种导出方式. 使用VMware OVF Tool工具 ...

  8. AccountManager getAccount 在Android O 8.0版本中获取为 null ?

    问题 AccountManager accountManager = AccountManager.get(this);Account[] accounts = accountManager.getA ...

  9. C# v7.0版本中的local function

    简介 变量和函数根据作用域,有本地的,如local variable, 也有全局的,如Global variable. 对于OO领域的函数,一般我们知道,根据访问限定,有public.protecte ...

  10. Elasticsearch8.0版本中Elasticsearch Java API Client客户端的基本使用方法

    关于Elasticsearch Java API Client客户端如何连接以及如何对索引和文档进行基本的增删改查操作请查看我的上一篇博文:Elasticsearch RestHighLevelCli ...

最新文章

  1. 云计算,能回答地球最终流浪到哪里吗?
  2. This Gradle plugin requires Studio 3.0 minimum
  3. Scala 中的函数式编程基础
  4. AWGN和Rayleigh信道下QPSK的误码率分析
  5. 时序分析:手势--空间轨迹模式识别
  6. C#基础:Lambda表达式
  7. ip变更 mysql无法启动_ubuntu mysql 更改IP导致mysql无法启动
  8. staruml java_非常详细的StarUML使用教程,推荐阅读!
  9. source insight工程的相对路径
  10. 【动态规划笔记】背包问题:搬寝室
  11. WOE(weight of evidence, 证据权重)
  12. SQL查询语句中参数带有中文查询不到结果
  13. Spring 最常用的注解,史上最强整理!
  14. 计算机专业学生如何规划好大学四年的学习
  15. java web 注册登录_javaweb实现登录注册功能实例
  16. 爬虫案例1:js逆向获取极简壁纸的高清壁纸
  17. 关于阿里云你了解多少
  18. unity 2D动画控制一些小技巧
  19. PowerDesigner 15及破解补丁下载
  20. 第九周-求一元二次函数的根

热门文章

  1. php3.2 之文件上传,多文件上传
  2. JetLinks 物联网基础平台 1.6 RELEASE 发布
  3. Dgraph 1.2.8 发布,事务性分布式图形数据库
  4. 日志分析工具 GoAccess v1.3 发布,支持简体中文和安装使用
  5. 定时重启_SpringBoot基于数据库的定时任务实现方法
  6. 接口中定义的成员变量是( )。_C++:如何正确的定义一个接口类
  7. PHPeclipse操作svn
  8. msu文件无法运行_如何打开msu文件
  9. 六石编程学:由库调用没测试到,谈工作粗糙
  10. 字写得难看,是什么原因