使用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的消息提示插件之旅 DivAlert(三)
Apr 01 Javascript
js 数据类型转换总结笔记
Jan 17 Javascript
javascript之querySelector和querySelectorAll使用介绍
Dec 20 Javascript
document.documentElement和document.body区别介绍
Sep 16 Javascript
3种不同方式的焦点图轮播特效分享
Oct 30 Javascript
详解javascript事件绑定使用方法
Oct 20 Javascript
简单实现Bootstrap标签页
Aug 09 Javascript
bootstrap Validator 模态框、jsp、表单验证 Ajax提交功能
Feb 17 Javascript
浅谈React和Redux的连接react-redux
Dec 04 Javascript
three.js搭建室内场景教程
Dec 30 Javascript
vue实现户籍管理系统
May 29 Javascript
Javascript数组及类数组相关原理详解
Oct 29 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
模拟xcopy的函数
2006/10/09 PHP
PHP4实际应用经验篇(4)
2006/10/09 PHP
Notice: Undefined index: page in E:\PHP\test.php on line 14
2010/11/02 PHP
理解和运用PHP中的多态性[译]
2011/08/02 PHP
PHP随机字符串生成代码(包括大小写字母)
2013/06/24 PHP
nginx+thinkphp下解决不支持pathinfo模式
2015/07/01 PHP
PHP使用数组依次替换字符串中匹配项
2016/01/08 PHP
PHP ADODB生成HTML表格函数rs2html功能【附错误处理函数用法】
2018/05/29 PHP
jQuery Validate 验证,校验规则写在控件中的具体实例
2014/02/27 Javascript
javascript+html5实现绘制圆环的方法
2015/07/28 Javascript
JS简单获取当前年月日星期的方法示例
2017/02/07 Javascript
VUE接入腾讯验证码功能(滑块验证)备忘
2019/05/07 Javascript
vue项目中运用webpack动态配置打包多种环境域名的方法
2019/06/24 Javascript
vue实现记事本功能
2019/06/26 Javascript
你可能从未使用过的11+个JavaScript特性(小结)
2020/01/08 Javascript
vue中提示$index is not defined错误的解决方式
2020/09/02 Javascript
JS如何调用WebAssembly编译出来的.wasm文件
2020/11/05 Javascript
Python验证企业工商注册码
2015/10/25 Python
python对execl 处理操作代码
2020/06/22 Python
CSS3实现线性渐变用法示例代码详解
2020/08/07 HTML / CSS
基于Html5实现的react拖拽排序组件示例
2018/08/13 HTML / CSS
Hotels.com越南:酒店预订
2019/10/29 全球购物
法国滑雪假期的专家:Ski Planet
2019/11/02 全球购物
中专毕业生求职简历的自我评价
2013/10/21 职场文书
副科竞争上岗演讲稿
2014/05/12 职场文书
投标服务承诺书
2014/05/28 职场文书
孩子教育的心得体会
2014/09/01 职场文书
2014年专项整治工作总结
2014/11/17 职场文书
研究生毕业论文导师评语
2014/12/31 职场文书
国庆节慰问信
2015/02/15 职场文书
2015年信访工作总结
2015/04/07 职场文书
圣诞晚会主持词
2015/07/01 职场文书
公司保洁员管理制度
2015/08/04 职场文书
Django操作cookie的实现
2021/05/26 Python
Go语言基础函数基本用法及示例详解
2021/11/17 Golang
教你win10系统中APPCRASH事件问题解决方法
2022/07/15 数码科技