热门标签 | 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

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


推荐阅读
  • Vue应用预渲染技术详解与实践 ... [详细]
  • 深入浅出 webpack 系列(二):实现 PostCSS 代码的编译与优化
    在前一篇文章中,我们探讨了如何通过基础配置使 Webpack 完成 ES6 代码的编译。本文将深入讲解如何利用 Webpack 实现 PostCSS 代码的编译与优化,包括配置相关插件和加载器,以提升开发效率和代码质量。我们将详细介绍每个步骤,并提供实用示例,帮助读者更好地理解和应用这些技术。 ... [详细]
  • vue引入echarts地图的四种方式
    一、vue中引入echart1、安装echarts:npminstallecharts--save2、在main.js文件中引入echarts实例:  Vue.prototype.$echartsecharts3、在需要用到echart图形的vue文件中引入:   importechartsfrom"echarts";4、如果用到map(地图),还 ... [详细]
  • 单元测试:使用mocha和should.js搭建nodejs的单元测试
    2019独角兽企业重金招聘Python工程师标准BDD测试利器:mochashould.js众所周知对于任何一个项目来说,做好单元测试都是必不可少 ... [详细]
  • 本文介绍了如何使用 Node.js 和 Express(4.x 及以上版本)构建高效的文件上传功能。通过引入 `multer` 中间件,可以轻松实现文件上传。首先,需要通过 `npm install multer` 安装该中间件。接着,在 Express 应用中配置 `multer`,以处理多部分表单数据。本文详细讲解了 `multer` 的基本用法和高级配置,帮助开发者快速搭建稳定可靠的文件上传服务。 ... [详细]
  • 深入解析:React与Webpack配置进阶指南(第二部分)
    在本篇进阶指南的第二部分中,我们将继续探讨 React 与 Webpack 的高级配置技巧。通过实际案例,我们将展示如何使用 React 和 Webpack 构建一个简单的 Todo 应用程序,具体包括 `TodoApp.js` 文件中的代码实现,如导入 React 和自定义组件 `TodoList`。此外,我们还将深入讲解 Webpack 配置文件的优化方法,以提升开发效率和应用性能。 ... [详细]
  • 在GitHub上克隆vue-element-admin项目时遇到依赖安装错误
    在 GitHub 上克隆 vue-element-admin 项目后,使用 `npm install` 安装依赖时遇到了未知的 Git 错误。具体错误信息为 `npm ERR! code 128`,提示命令执行失败。这可能是由于网络问题、Git 配置不正确或某些依赖包的仓库地址无效导致的。建议检查网络连接、更新 Git 版本并确保所有依赖项的 URL 正确无误。 ... [详细]
  • 本文介绍了.hbs文件作为Ember.js项目中的视图层,类似于HTML文件的功能,并详细讲解了如何在Ember.js应用中集成Bootstrap框架及其相关组件的方法。 ... [详细]
  • 本文详细介绍了 InfluxDB、collectd 和 Grafana 的安装与配置流程。首先,按照启动顺序依次安装并配置 InfluxDB、collectd 和 Grafana。InfluxDB 作为时序数据库,用于存储时间序列数据;collectd 负责数据的采集与传输;Grafana 则用于数据的可视化展示。文中提供了 collectd 的官方文档链接,便于用户参考和进一步了解其配置选项。通过本指南,读者可以轻松搭建一个高效的数据监控系统。 ... [详细]
  • 为了在Hadoop 2.7.2中实现对Snappy压缩和解压功能的原生支持,本文详细介绍了如何重新编译Hadoop源代码,并优化其Native编译过程。通过这一优化,可以显著提升数据处理的效率和性能。此外,还探讨了编译过程中可能遇到的问题及其解决方案,为用户提供了一套完整的操作指南。 ... [详细]
  • 本文深入探讨了如何利用Maven高效管理项目中的外部依赖库。通过介绍Maven的官方依赖搜索地址(),详细讲解了依赖库的添加、版本管理和冲突解决等关键操作。此外,还提供了实用的配置示例和最佳实践,帮助开发者优化项目构建流程,提高开发效率。 ... [详细]
  • Squaretest:自动生成功能测试代码的高效插件
    本文将介绍一款名为Squaretest的高效插件,该工具能够自动生成功能测试代码。使用这款插件的主要原因是公司近期加强了代码质量的管控,对各项目进行了严格的单元测试评估。Squaretest不仅提高了测试代码的生成效率,还显著提升了代码的质量和可靠性。 ... [详细]
  • 本文介绍了 Vue 开发的入门指南,重点讲解了开发环境的配置与项目的基本搭建。推荐使用 WebStorm 作为 IDE,其下载地址为 。安装时请选择适合您操作系统的版本,并通过 获取激活码。WebStorm 是前端开发者的理想选择,提供了丰富的功能和强大的代码编辑能力。 ... [详细]
  • 今天我开始学习Flutter,并在Android Studio 3.5.3中创建了一个新的Flutter项目。然而,在首次尝试运行时遇到了问题,Gradle任务 `assembleDebug` 执行失败,退出状态码为1。经过初步排查,发现可能是由于依赖项配置不当或Gradle版本不兼容导致的。为了解决这个问题,我计划检查项目的 `build.gradle` 文件,确保所有依赖项和插件版本都符合要求,并尝试更新Gradle版本。此外,还将验证环境变量配置是否正确,以确保开发环境的稳定性。 ... [详细]
  • 本文详细介绍了在 Vue.js 前端框架中集成 vue-i18n 插件以实现多语言支持的方法。通过具体的配置步骤和示例代码,帮助开发者快速掌握如何在项目中实现国际化功能,提升用户体验。同时,文章还探讨了常见的多语言切换问题及解决方案,为开发人员提供了实用的参考。 ... [详细]
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社区 版权所有