使用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 相关文章推荐
javascript写的一个模拟阅读小说的程序
Apr 04 Javascript
使用JS获取当前地理位置方法汇总
Dec 18 Javascript
js操作滚动条事件实例
Jan 29 Javascript
jQuery图片加载显示loading效果
Nov 04 Javascript
基于JS实现仿京东搜索栏随滑动透明度渐变效果
Jul 10 Javascript
Javascript别踩白块儿(钢琴块儿)小游戏实现代码
Jul 20 Javascript
详解用函数式编程对JavaScript进行断舍离
Sep 18 Javascript
nuxt.js 缓存实践
Jun 25 Javascript
vue-cli3.0 脚手架搭建项目的过程详解
Oct 19 Javascript
JavaScript遍历查找数组中最大值与最小值的方法示例
May 24 Javascript
基于JavaScript伪随机正态分布代码实例
Nov 07 Javascript
vue打包npm run build时候界面报错的解决
Aug 13 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使用PHPexcel导入导出数据的方法
2015/11/14 PHP
PHP使用xpath解析XML的方法详解
2017/05/20 PHP
PHP安装memcache扩展的步骤讲解
2019/02/14 PHP
showModalDialog 和 showModelessDialog
2007/01/22 Javascript
List Information About the Binary Files Used by an Application
2007/06/11 Javascript
javascript创建和存储cookie示例
2014/01/07 Javascript
jQuery实现Twitter的自动文字补齐特效
2014/11/28 Javascript
JS实现带圆弧背景渐变效果的导航菜单代码
2015/10/13 Javascript
javascript实现滑动解锁功能
2017/03/22 Javascript
Node.js如何实现注册邮箱激活功能 (常见)
2017/07/23 Javascript
基于Vue实现页面切换左右滑动效果
2020/06/29 Javascript
图片加载完成再执行事件的实例
2017/11/16 Javascript
Vue利用History记录上一页面的数据方法实例
2018/11/02 Javascript
浅谈vue.watch的触发条件是什么
2020/11/07 Javascript
[01:03:31]DOTA2上海特级锦标赛B组资格赛#1 Alliance VS Fnatic第二局
2016/02/26 DOTA
python根据路径导入模块的方法
2014/09/30 Python
Python中操作文件之write()方法的使用教程
2015/05/25 Python
django与小程序实现登录验证功能的示例代码
2019/02/19 Python
Python创建或生成列表的操作方法
2019/06/19 Python
python Django框架实现web端分页呈现数据
2019/10/31 Python
python 爬取古诗文存入mysql数据库的方法
2020/01/08 Python
利用Pytorch实现简单的线性回归算法
2020/01/15 Python
Python使用enumerate获取迭代元素下标
2020/02/03 Python
Python实现ElGamal加密算法的示例代码
2020/06/19 Python
阿迪达斯西班牙官方网站:adidas西班牙
2016/07/21 全球购物
zooplus意大利:在线宠物商店
2019/08/07 全球购物
Columbia Sportswear法国官网:全球户外品牌
2020/09/25 全球购物
韩国乐天网上商城:Lotte iMall
2021/02/03 全球购物
怎样声明接口
2014/09/19 面试题
大学生毕业鉴定
2014/01/31 职场文书
日语专业个人求职信范文
2014/02/02 职场文书
物业保安岗位职责
2014/07/02 职场文书
法院四风对照检查材料思想汇报
2014/10/06 职场文书
小学六一主持词开场白
2015/05/28 职场文书
教你使用Pandas直接核算Excel中快递费用
2021/05/12 Python
javascript条件式访问属性和箭头函数介绍
2021/11/17 Javascript