使用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 相关文章推荐
使用新的消息弹出框blackbirdjs
Oct 16 Javascript
Jquery实现弹出层分享微博插件具备动画效果
Apr 03 Javascript
js添加select下默认的option的value和text的方法
Oct 19 Javascript
Javascript将数值转换为金额格式(分隔千分位和自动增加小数点)
Jun 22 Javascript
javascript基础知识讲解
Jan 11 Javascript
基于Bootstrap的网页设计实例
Mar 01 Javascript
Layer组件多个iframe弹出层打开与关闭及参数传递的方法
Sep 25 Javascript
解决vue axios跨域 Request Method: OPTIONS问题(预检请求)
Aug 14 Javascript
在vscode 中设置 vue模板内容的方法
Sep 02 Javascript
SpringBoot+Vue开发之Login校验规则、实现登录和重置事件
Oct 19 Javascript
jenkins自动构建发布vue项目的方法步骤
Jan 04 Vue.js
JS Canvas接口和动画效果大全
Apr 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
PHP 定界符 使用技巧
2009/06/14 PHP
php连接Access数据库错误及解决方法
2013/06/20 PHP
smarty模板引擎之内建函数用法
2015/03/30 PHP
PHP获取音频文件的相关信息
2015/06/22 PHP
PHP字符串中抽取子串操作实例分析
2019/06/22 PHP
基于jquery的内容循环滚动小模块(仿新浪微博未登录首页滚动微博显示)
2011/03/28 Javascript
ie中js创建checkbox默认选中问题探讨
2013/10/21 Javascript
解决JQeury显示内容没有边距内容紧挨着浏览器边线
2013/12/20 Javascript
js格式化时间的方法
2015/12/18 Javascript
Jquery判断form表单数据是否变化
2016/03/30 Javascript
Jquery Easyui分割按钮组件SplitButton使用详解(17)
2016/12/18 Javascript
详解从angular-cli:1.0.0-beta.28.3升级到@angular/cli:1.0.0
2017/05/22 Javascript
vue webpack开发访问后台接口全局配置的方法
2018/09/18 Javascript
浅谈vue中关于checkbox数据绑定v-model指令的个人理解
2018/11/14 Javascript
使用VueRouter的addRoutes方法实现动态添加用户的权限路由
2019/06/03 Javascript
简单了解JavaScript arguement原理及作用
2020/05/28 Javascript
JavaScript实现4位随机验证码的生成
2021/01/28 Javascript
深入解析Python编程中JSON模块的使用
2015/10/15 Python
使用Python3 编写简单信用卡管理程序
2016/12/21 Python
python中找出numpy array数组的最值及其索引方法
2018/04/17 Python
python实现狄克斯特拉算法
2019/01/17 Python
Python Django框架防御CSRF攻击的方法分析
2019/10/18 Python
python误差棒图errorbar()函数实例解析
2020/02/11 Python
BookOutlet加拿大:在网上书店购买廉价折扣图书和小说
2018/10/05 全球购物
Shopping happy life西班牙:以最优惠的价格提供最好的时尚配饰
2020/03/13 全球购物
跟单文员的岗位职责
2013/11/14 职场文书
初一学生评语大全
2014/04/24 职场文书
借款担保书范文
2014/05/13 职场文书
售后客服工作职责
2014/06/16 职场文书
幽默导游词开场白
2015/05/29 职场文书
浅析InnoDB索引结构
2021/04/05 MySQL
java固定大小队列的几种实现方式详解
2021/07/15 Java/Android
数据分析数据库ClickHouse在大数据领域应用实践
2022/04/03 MySQL
如何vue使用el-table遍历循环表头和表体数据
2022/04/26 Vue.js
apache ftpserver搭建ftp服务器
2022/05/20 Servers
Java Spring读取和存储详细操作
2022/08/05 Java/Android