使用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 相关文章推荐
JQuery SELECT单选模拟jQuery.select.js
Nov 12 Javascript
JQuery遍历json数组的3种方法
Nov 08 Javascript
纯javascript实现分页(两种方法)
Aug 26 Javascript
JavaScript数组去重的五种方法
Nov 05 Javascript
常用javascript表单验证汇总
Jul 20 Javascript
js数组与字符串常用方法总结
Jan 13 Javascript
从零学习node.js之简易的网络爬虫(四)
Feb 22 Javascript
Vue数组更新及过滤排序功能
Aug 10 Javascript
微信小程序图片选择区域裁剪实现方法
Dec 02 Javascript
vue中Element-ui 输入银行账号每四位加一个空格的实现代码
Sep 14 Javascript
Node.js中读取TXT文件内容fs.readFile()用法
Oct 10 Javascript
微信小程序云开发之云函数详解
May 16 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
smarty+adodb+部分自定义类的php开发模式
2006/12/31 PHP
PHP中实现生成静态文件的方法缓解服务器压力
2014/01/07 PHP
利用PHP计算有多少小于当前数字的数字方法示例
2020/08/26 PHP
在JavaScript中监听IME键盘输入事件
2011/05/29 Javascript
javascript游戏开发之《三国志曹操传》零部件开发(四)用地图块拼成大地图
2013/01/23 Javascript
node.js中Socket.IO的进阶使用技巧
2014/11/04 Javascript
纯JS实现本地图片预览的方法
2015/07/31 Javascript
你不需要jQuery(三) 新AJAX方法fetch()
2016/06/14 Javascript
浅谈js基本数据类型和typeof
2016/08/09 Javascript
js实现文字向上轮播功能
2017/01/13 Javascript
jquery点击回车键实现登录效果并默认焦点的方法
2018/03/09 jQuery
JS中数组实现代码(倒序遍历数组,数组连接字符串)
2019/12/29 Javascript
[01:32]完美世界DOTA2联赛10月29日精彩集锦
2020/10/30 DOTA
详解Python操作RabbitMQ服务器消息队列的远程结果返回
2016/06/30 Python
使用Python中的tkinter模块作图的方法
2017/02/07 Python
Python正则表达式非贪婪、多行匹配功能示例
2017/08/08 Python
解决python3读取Python2存储的pickle文件问题
2018/10/25 Python
pandas求两个表格不相交的集合方法
2018/12/08 Python
python实现文件批量编码转换及注意事项
2019/10/14 Python
Python分析微信好友性别比例和省份城市分布比例的方法示例【基于itchat模块】
2020/05/29 Python
PyQt实现计数器的方法示例
2021/01/18 Python
CSS3田字格列表的样式编写方法
2018/11/22 HTML / CSS
网易微博Web App用HTML5开发的过程介绍
2012/06/13 HTML / CSS
html5 视频播放解决方案
2016/11/06 HTML / CSS
普通大学毕业生自荐信
2013/11/04 职场文书
历史学专业推荐信
2013/11/06 职场文书
民政局离婚协议书范本
2014/10/20 职场文书
2014年学生会干事工作总结
2014/11/07 职场文书
个人思想政治总结
2015/03/05 职场文书
2015年治庸问责工作总结
2015/07/27 职场文书
房产遗嘱范本
2015/08/06 职场文书
申论不会写怎么办?教您掌握这6点思维和原则
2019/07/17 职场文书
css3实现背景图片颜色修改的多种方式
2021/04/13 HTML / CSS
Python re.sub 反向引用的实现
2021/07/07 Python
详解Python中的for循环
2022/04/30 Python
Python docx库删除复制paragraph及行高设置图片插入示例
2022/07/23 Python