热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

WebpackbabelES6转ES5

npminstall-Dbabelcorebabelpreset-envbabelplugin-transform-runtimebabelpolyfillbabel-loader

npm install -D @babel/core @babel/preset-env @babel/plugin-transform-runtime @babel/polyfill babel-loader

创建.babelrc文件

命令行方式创建输入:type nul>.babelrc

{"presets": [["@babel/preset-env", {"useBuiltIns": "usage","modules": false}]],"plugins": [["@babel/plugin-transform-runtime", {"corejs": false,"helpers": false,"regenerator": false,"useESModules": false}]],"comments": false
}

添加module 

yarn add clone -D

webpack.config.js配置 babel-loader

let path = require('path');
let HtmlWebpackPlugin = require('html-webpack-plugin');
module.exports= {mode:'development',//production developmententry:'./src/index.js',//入口output:{filename:'bundle.[hash:8].js',//打包后的文件名path:path.resolve(__dirname,'dist')},devServer:{port:8090,progress:true,contentBase:'./dist'},plugins:[new HtmlWebpackPlugin({template:'./src/index.html',filename:'index.html',minify:{removeAttributeQuotes:true,//删除属性双引号collapseWhitespace:true,//html折叠一行minifyJS: true,//压缩HTML中JSminifyCSS: true//压缩HTML中CSS},hash:true//生成hash戳})],module: {rules: [ // 定义css规则,use从下往上顺序执行{test: /\.css$/, // 正则匹配要识别的cssuse: [{loader: 'style-loader' // 使用style-loader进行处理,位置必须在css-loader前面},{loader: 'css-loader' // 使用css-loader进行处理}]//use:['style-loader','css-loader'] // 此处也可以这样写},{test:/\.less$/,use: [{loader: 'style-loader' // 使用style-loader进行处理,位置必须在css-loader前面},{loader: 'css-loader' // 使用css-loader进行处理},{loader: 'less-loader' //less ——> css}]},{test: /\.js$/,include: [path.resolve(__dirname, 'src')],exclude: /(node_modules|bower_components)/,loader: "babel-loader",}]}}

Superstr-1.0.js

function Superstr(){}
Superstr.prototype.version='1.0';
Superstr.prototype.jsonHttpRequest={/***请求JSON格式数据*@param:method 请求方式,标准的GET、POST(_method=PUT)*@param:url 请求地址URL*@param:asyn 是否异步请求*@param:callback 请求成功执行的回调函数*@data:请求参数*/request: function(method,url,asyn,callback,data) {var param = null;var temp = 'superstr_timestamp=' + new Date().getTime();if(data) {for(var key in data) {temp = temp + '&' + key + '=' + data[key]; }}if(method.toLocaleUpperCase()=='POST') {param = temp;} else {method = 'GET';if(url.indexOf('?')>-1) {url = url + '&' + temp;} else {url = url + '?' + temp;}}var xhr = new XMLHttpRequest();//创建Http请求对象xhr.onreadystatechange=function() {if(xhr.readyState==4&&xhr.status==200) {callback(JSON.parse(xhr.responseText));} else if(xhr.readyState==4){alert("———请求异常———"+"\n"+"请求地址(url):"+url+"\n"+"请求方式(method):"+method+"\n"+"状态码(status):"+xhr.status+"\n"+"异步(asyn):"+asyn);}}xhr.open(method,url,asyn);//true:异步 false:同步xhr.setRequestHeader("Content-Type","application/x-www-form-urlencoded");xhr.send(param);}
}
Superstr.prototype.arrays={/***移除数组中重复的对象*@param:arr 数组*@param:property 数组中对象的属性名称*@return:array 处理后的数组*/only: function(arr, property) {let hash = {}var array = arr.reduce((item, next) => {if (!hash[next[property]]) {hash[next[property]] = true;item.push(next);}return item;}, [])return array;},/***过滤数组中的对象*@param:arr 数组*@param:property 数组中对象的属性名称*@param:value 数组中对象属性的值*@return:array 处理后的数组*/remove: function(arr,property,value) {var array = arr.filter((obj) => {return obj[property] != value} )return array;},/** *数组冒泡排序*@param:arr 数组*@param:property 数组中对象的属性名称*/bubbleSort: function(arr, property) {var array = arr,temp;for(var i=0; iarr[j][property]) {temp=arr[i];arr[i]=arr[j];arr[j]=temp;}}}return array;}
}
Superstr.prototype.classNames={names: {draggable:"draggable"},/***添加拖拽效果,对象互换*@descriptions:在添加效果之前需要保证对象可拖动(draggable="true")*/draggable: function() {var className = this.names.draggable;var obj = null;//拖动的对象window.onload=function() {var elements = document.getElementsByClassName(className);for(var n=0;n}
var _ = new Superstr();

index.js 导入 Superstr-1.0.js

import './Superstr-1.0.js';

执行打包命令

npx webpack

发现打包后的代码中已经没有 =>箭头函数了


推荐阅读
  • 本文介绍了如何利用Webpack中的HtmlWebpackPlugin插件实现HTML文件的自动化生成,包括详细的安装步骤和配置方法。 ... [详细]
  • 离线安装Grafana Cloudera Manager插件并监控CDH集群
    本文详细介绍如何离线安装Cloudera Manager (CM) 插件,并通过Grafana监控CDH集群的健康状况和资源使用情况。该插件利用CM提供的API接口进行数据获取和展示。 ... [详细]
  • 基于Node.js、Express、MongoDB和Socket.io的实时聊天应用开发
    本文详细介绍了使用Node.js、Express、MongoDB和Socket.io构建的实时聊天应用程序。涵盖项目结构、技术栈选择及关键依赖项的配置。 ... [详细]
  • 简化报表生成:EasyReport工具的全面解析
    本文详细介绍了EasyReport,一个易于使用的开源Web报表工具。该工具支持Hadoop、HBase及多种关系型数据库,能够将SQL查询结果转换为HTML表格,并提供Excel导出、图表显示和表头冻结等功能。 ... [详细]
  • 深入理解Vue.js:从入门到精通
    本文详细介绍了Vue.js的基础知识、安装方法、核心概念及实战案例,帮助开发者全面掌握这一流行的前端框架。 ... [详细]
  • Redux入门指南
    本文介绍Redux的基本概念和工作原理,帮助初学者理解如何使用Redux管理应用程序的状态。Redux是一个用于JavaScript应用的状态管理库,特别适用于React项目。 ... [详细]
  • 云函数与数据库API实现增删查改的对比
    本文将深入探讨使用云函数和数据库API实现数据操作(增删查改)的不同方法,通过详细的代码示例帮助读者更好地理解和掌握这些技术。文章不仅提供代码实现,还解释了每种方法的特点和适用场景。 ... [详细]
  • This post discusses an issue encountered while using the @name annotation in documentation generation, specifically regarding nested class processing and unexpected output. ... [详细]
  • Python自动化测试入门:Selenium环境搭建
    本文详细介绍如何在Python环境中安装和配置Selenium,包括开发工具PyCharm的安装、Python环境的设置以及Selenium包的安装方法。此外,还提供了编写和运行第一个自动化测试脚本的步骤。 ... [详细]
  • 本文详细介绍了如何在云服务器上配置Nginx、Tomcat、JDK和MySQL。涵盖从下载、安装到配置的完整步骤,帮助读者快速搭建Java Web开发环境。 ... [详细]
  • 搭建Jenkins、Ant与TestNG集成环境
    本文详细介绍了如何在Ubuntu 16.04系统上配置Jenkins、Ant和TestNG的集成开发环境,涵盖从安装到配置的具体步骤,并提供了创建Windows Slave节点及项目构建的指南。 ... [详细]
  • Vue 开发与调试工具指南
    本文介绍了如何使用 Vue 调试工具,包括克隆仓库、安装依赖包、构建项目以及在 Chrome 浏览器中加载扩展的详细步骤。 ... [详细]
  • CentOS 7.6环境下Prometheus与Grafana的集成部署指南
    本文旨在提供一套详细的步骤,指导读者如何在CentOS 7.6操作系统上成功安装和配置Prometheus 2.17.1及Grafana 6.7.2-1,实现高效的数据监控与可视化。 ... [详细]
  • 洞态IAST Java Agent 实现AOP技术详解
    本文深入探讨了洞态IAST Java Agent如何通过AOP技术实现方法调用链和污点值传播等功能,为读者提供了详细的源码分析。 ... [详细]
  • Django xAdmin 使用指南(第一部分)
    本文介绍如何在Django项目中集成和使用xAdmin,这是一个增强版的管理界面,提供了比Django默认admin更多的功能。文中详细描述了集成步骤及配置方法。 ... [详细]
author-avatar
360691894_8a5c48
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有