使用webpack4编译并压缩ES6代码的方法示例


Posted in Javascript onApril 24, 2019

前段时间第一次接触了layabox游戏引擎做了一个项目,由于ES6相当好用,所以在项目中使用了很多的ES6语法,但是在发布的时候发现该引擎无法压缩ES6的代码,而不进行压缩的话则代码体积比较大

然后其实该引擎会将自己写的代码打包在一个js文件中,所以也就只有一个js文件是没有压缩的,所以我就想到了自己使用webpack单独对这个文件进行压缩,并将ES6语法编译成ES5,做低版本浏览器的兼容。

第一步安装webpack

1) 全局安装webpack4

npm install webpack -g

创建一个文件夹(webpack4-babel-uglify),初始化项目

cd webpack4-babel-uglify
npm init -y
npm install webpack webpack-cli --save-dev

安装编译ES6的依赖插件

npm install babel-core babel-loader@7 babel-plugin-transform-runtime babel-preset-env --save-dev
npm install babel-polyfill babel-runtime --save

在根目录下创建src目录,将需要编译压缩的js放在src目录下

mkdir src

配置webpack.config.js

module.exports = {
 mode:'development',
 entry: {
 app: [
  "babel-polyfill", 
  "./src/index.js" //需要压缩的js,目前只支持单个文件一个一个压缩 = =!
 ],
 },
 output: {
 path: path.resolve(__dirname, 'dist'), //输出目录
 filename: 'index.js' //输出文件名称,建议与源文件同名
 },
 module: {
 rules: [{
  test: /\.js$/,
  exclude: /(node_modules)/,
  use: {
  loader: "babel-loader"
  }
 }]
 }
};

在根目录下新建.babel文件,设置babel相关配置

{
 "presets": [
 [
  "env",
  {
  "targets": {
   "browsers": [ //浏览器版本
   "> 1%",
   "last 2 versions",
   "not ie <= 8",
   "iOS >= 6",
   "safari >= 6",
   "Firefox >= 20",
   "Android > 4",
   "android >= 4.4"
   ]
  }
  }
 ]
 ],
 "plugins": ["transform-runtime"]
}

修改package.json中的打包命令

"scripts": {
  ...
 "build": "webpack" //新增这条命令
 }

将需要压缩编译的js文件放入src下,并修改第五步中的文件名,之后执行打包命令

npm run build

至此,压缩编译成功,压缩编译后的文件在dist目录下

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
js实现发送验证码后的倒计时功能
May 28 Javascript
jQuery插件实现无缝滚动特效
Nov 24 Javascript
Bootstrap3 input输入框插入glyphicon图标的方法
May 16 Javascript
JavaScript中的操作符类型转换示例总结
May 30 Javascript
VC调用javascript的几种方法(推荐)
Aug 09 Javascript
js给table赋值的实例代码
Oct 13 Javascript
详解JavaScript常量定义
Jan 03 Javascript
Bootstrap modal 多弹窗之叠加引起的滚动条遮罩阴影问题
Feb 27 Javascript
AngularJS ng-repeat指令及Ajax的应用实例分析
Jul 06 Javascript
vue数据初始化initState的实例详解
Apr 11 Javascript
JS图片预加载三种实现方法解析
May 08 Javascript
vue基于better-scroll仿京东分类列表
Jun 30 Javascript
页面内锚点定位及跳转方法总结(推荐)
Apr 24 #Javascript
详解Vue项目中实现锚点定位
Apr 24 #Javascript
微信小程序中使用echarts的实现方法
Apr 24 #Javascript
基于mpvue小程序使用echarts画折线图的方法示例
Apr 24 #Javascript
详解微信小程序开发用户授权登陆
Apr 24 #Javascript
微信小程序实现的一键拨号功能示例
Apr 24 #Javascript
详解vue中使用vue-quill-editor富文本小结(图片上传)
Apr 24 #Javascript
You might like
PHP set_time_limit(0)长连接的实现分析
2010/03/02 PHP
深入解析PHP垃圾回收机制对内存泄露的处理
2013/06/14 PHP
ThinkPHP分页实例
2014/10/15 PHP
thinkPHP实现表单自动验证
2014/12/24 PHP
PHP分页初探 一个最简单的PHP分页代码的简单实现
2016/06/21 PHP
用javascript父窗口控制只弹出一个子窗口
2007/04/10 Javascript
比较详细的关于javascript中void(0)的具体含义解释
2007/08/02 Javascript
javascript 读取xml,写入xml 实现代码
2009/07/10 Javascript
javascript new一个对象的实质
2010/01/07 Javascript
鼠标移动到图片名上,显示图片的简单实例
2013/07/14 Javascript
在子窗口中关闭父窗口的一句代码
2013/10/21 Javascript
js style.display=block显示布局错乱问题的解决方法
2016/09/21 Javascript
Vuex 单状态库与多模块状态库详解
2018/12/11 Javascript
解决layui数据表格Date日期格式的回显Object的问题
2019/09/19 Javascript
JavaScript实现更换背景图片
2019/10/18 Javascript
阿望教你用vue写扫雷小游戏
2020/01/20 Javascript
vue tab切换,解决echartst图表宽度只有100px的问题
2020/07/19 Javascript
vue+elementui通用弹窗的实现(新增+编辑)
2021/01/07 Vue.js
python通过urllib2爬网页上种子下载示例
2014/02/24 Python
Flask入门教程实例:搭建一个静态博客
2015/03/27 Python
按日期打印Python的Tornado框架中的日志的方法
2015/05/02 Python
Python端口扫描简单程序
2016/11/10 Python
wtfPython—Python中一组有趣微妙的代码【收藏】
2018/08/31 Python
python安装dlib库报错问题及解决方法
2020/03/16 Python
Python新手学习函数默认参数设置
2020/06/03 Python
django使用graphql的实例
2020/09/02 Python
Lookfantastic瑞典:英国知名美妆购物网站
2018/04/06 全球购物
美赞臣营养马来西亚旗舰店:Enfagrow马来西亚
2019/07/26 全球购物
台湾良兴购物网:EcLife
2019/12/01 全球购物
党员干部一句话承诺
2014/05/30 职场文书
申报优秀教师材料
2014/12/16 职场文书
大学毕业生个人总结
2015/02/28 职场文书
小学少先队工作总结2015
2015/05/26 职场文书
王亚平太空授课观后感
2015/06/12 职场文书
2015中秋祝酒词
2015/08/12 职场文书
nginx日志格式分析和修改
2022/04/28 Servers