【例子】webpack配合babel实现 es6 语法转 es5 案例 [通俗易懂]

首先来说一下实现 es6 转 es5 的一个简单步骤

1、新建一个项目,并且在命令行中初始化项目   npm init -y2、安装对应版本的 webpack webpack-cli(命令行工具) "webpack""webpack-cli"3、安装 Babel 核心库和相关的 loader "babel-core""babel-loader""babel-preset-env"4、在项目根目录下创建一个 .babelrc 配置文件或在 package.json 中添加 Babel 配置5、在项目根目录下创建一个 webpack.config.js 配置文件,并设置 Babel loader6、在 src 目录下创建 index.js 文件,并写入 es6 代码7、在命令行中运行 webpack 来打包8、打包完成后,生成的 bundle.js 文件将包含转换后的 ES5 代码,可以被浏览器执行

下面是具体步骤

一、新建项目

1、新建一个文件夹,然后用 vs-code 打开新建好的文件夹,如:

2、打开终端,输入命令对项目进行初始化(默认这里认为已经安装好了node.js

npm init -y

运行完这个命令之后,项目中会新增一个 package.json 的文件

3、接着在项目中新建 src 文件夹,index.html 文件,以及在 src 文件夹下新建 index.js 文件(书写ed6代码的入口文件),如:

二、安装 webpack

打开终端,在你的项目中安装 Webpack 和 Webpack CLI(命令行工具),如:

npm install --save-dev webpack webpack-cli

解释:这里的 --save-dev 是指将安装的包配置为开发环境包,这样只会在开发过程中使用,不会包含在生产环境的部署中。如果不加这个命令的话,项目部署到生产环境的时候,这些依赖包也会包含在内。

安装完成后,项目中的 package.json 文件中就会出现如下配置

三、安装 Babel

继续在终端中安装 Babel 的核心库和相关的 loader

npm install --save-dev @babel/core @babel/preset-env babel-loader

安装完成后,项目中的 package.json 文件中就会出现如下配置

四、配置 Babel

在项目的根目录中新增 .babelrc 文件,并在文件中添加如下配置,如:

{"presets": ["@babel/preset-env"]
}
五、配置 webpack

在项目根目录下创建一个 webpack.config.js 配置文件,并设置 Babel loader 

const path = require('path');module.exports = {entry: './src/index.js', // 你的入口文件output: {path: path.resolve(__dirname, 'dist'), // 输出的目录filename: 'bundle.js' // 输出的文件名},module: {rules: [{test: /\.js$/,exclude: /node_modules/, use: {loader: 'babel-loader',options: {presets: ['@babel/preset-env']}}}]}
};
六、编写 es6 代码

src 目录下的 index.js 文件中,写入 es6 的代码,如:

let a = 'a'
const b = 'b'
let arr = [1, 2, 3, 4, 5]
let brr = arr.map(i => i * 2)
console.log(a, b)
console.log(brr)
七、打包

在终端运行 webpack 来打包应用程序

npx webpack --config webpack.config.js

解释:这里的 --config webpack.config.js 的作用是告诉 webpack 使用你指定的配置文件来执行打包操作,而不是默认的配置文件。

八、运行

打包完成后,生成的 bundle.js 文件将包含转换后的 ES5 代码,可以被浏览器执行。

代码如下:

 结语:这样打包好的 bundle.js 就可以直接引入到 html 文件中进行使用了

以上就是使用 webpack 搭配 babel 实现 es6 语法转 es5 的全部代码了,这只是 webpack 很简单的一个应用,实际开发过程中我们还可以通过自己的业务需求配置自己的 loader,更多关于 webpack 的应用我在后续也会持续更新,有兴趣的小伙伴可以关注一下!!!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/359698.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

新质生产力潮水里:谁在为中小企业搭起一座桥?

与其说华为云为中小企业提供的是一个个更具性价比和产业适配度的产品,更本质来看,其通过618营销季为中小企业提供了一个数字化转型升级的契机,基于此,企业可以在云计算和AI时代实现内在变革,焕发新的生机与活力。 作者…

针对AIGC检测的鲁棒性测试——常见攻击手段汇总

前言:这篇文章来总结一下针对AIGC检测的常见攻击手段,选取的研究工作均出自近5年AIGC检测相关文章。(论文被拒了需要补实验,先来看看别人怎么做的……) 2019 WIFS Detecting and Simulating Artifacts in GAN Fake Ima…

泛微E9开发 根据判断条件,控制字段的编辑/必填属性

根据判断条件,控制字段的编辑/必填属性 1、需求说明2、实现方法3、扩展知识点1. 注册钩子事件,指定动作完成后触发1.1 接口名称及参数说明1.2 案例 2. 改变单个字段显示属性(只读/必填等)2.1 参数说明2.2 案例 1、需求说明 当字段“填报人”和字段“姓名…

vue3中ref标签

<tempalce><aa refa/> </tempalce> <script setup> import {ref} from vue //需要先定义一个空的ref let a ref() //然后才能使用组件ref的标签数据 </script> 然后需要在该组件中暴露出去 defineExpose({a,b,c})

ONLYOFFICE 桌面编辑器 8.1重磅来袭:全新功能提升您的办公效率

文章目录 前言ONLYOFFICE 桌面编辑器8.1一、PDF编辑&#xff1a;告别“头痛”时刻二、幻灯片版式&#xff1a;秒变“设计大师”三、无缝切换&#xff1a;办公界的“快速通道”四、语言支持&#xff1a;全球通吃的“翻译官”五、 隐藏“连接到云”板块&#xff1a;摆脱“云”的束…

Java NIO Buffer概念

针对每一种基本类型的 Buffer &#xff0c;NIO 又根据 Buffer 背后的数据存储内存不同分为了&#xff1a;HeapBuffer&#xff0c;DirectBuffer&#xff0c;MappedBuffer。 HeapBuffer 顾名思义它背后的存储内存是在 JVM 堆中分配&#xff0c;在堆中分配一个数组用来存放 Buffe…

73. UE5 RPG 优化投射物以及敌人生成

解决发射物会与地面产生交互的问题 之前一直遇到发射物的体积过大会在发射时&#xff0c;和地面产生交互&#xff0c;我们可以调整小一些&#xff0c;然后为了防止它和自身产生交互事件。我们可以实现它在生成后&#xff0c;不会触发相关事件&#xff0c;而是在一定时间后。 对…

k8s如何使用 HPA 实现自动扩展

使用Horizontal Pod Autoscaler (HPA) 实验目标&#xff1a; 学习如何使用 HPA 实现自动扩展。 实验步骤&#xff1a; 创建一个 Deployment&#xff0c;并设置 CPU 或内存的资源请求。创建一个 HPA&#xff0c;设置扩展策略。生成负载&#xff0c;观察 HPA 如何自动扩展 Pod…

Arduino称重传感器和 HX711 放大器(数字秤)

Arduino称重传感器和 HX711 放大器&#xff08;数字秤&#xff09; Arduino with Load Cell and HX711 Amplifier (Digital Scale) In this guide, you’ll learn how to create a digital scale with the Arduino using a load cell and the HX711 amplifier. First, you’l…

如何在微信小程序使用vant 进行自定义底部tabbar组件

在微信小程序中使用 Vant 自定义底部 TabBar 需要进行以下步骤&#xff1a; 一、首先&#xff0c;你需要在 app.json 文件中配置自定义 TabBar。 在 "tabBar" 字段中&#xff0c;设置 "custom" 为 true&#xff0c;表示使用自定义 TabBar。 app.json示例…

android 彩虹进度条自定义view实现

实现一个彩虹色进度条功能&#xff0c;不说明具体用途大家应该能猜到。想找别人造的轮子&#xff0c;但是没有合适的&#xff0c;所以决定自己实现一个。 相关知识 android 自定义view LinearGradient 线性渐变 实现步骤 自定义view 自定义一个TmcView类继承View 重写两…

【面试题】等保(等级保护)的工作流程

等保&#xff08;等级保护&#xff09;的工作流程主要包括以下几个步骤&#xff0c;以下将详细分点介绍&#xff1a; 系统定级&#xff1a; 确定定级对象&#xff1a;根据《信息系统等级保护管理办法》和《信息系统等级保护定级指南》的要求&#xff0c;确定需要进行等级保护的…

x86 的 ebp 寄存器,可能比 cr3 更重要,好好掰扯一下 ebp

在 x86 架构的计算机中&#xff0c;ebp&#xff08;Extended Base Pointer&#xff09;寄存器通常用于指向当前函数的栈帧&#xff08;stack frame&#xff09;的基地址。栈帧是函数调用期间在栈上分配的一块内存区域&#xff0c;用于存储局部变量、函数参数、返回地址和其他临…

[FreeRTOS 功能应用] 信号量 功能应用

文章目录 一、基础知识点二、代码讲解三、结果演示四、代码下载 一、基础知识点 [FreeRTOS 基础知识] 信号量 概念 [FreeRTOS 内部实现] 信号量 [FreeRTOS 内部实现] 创建任务 xTaskCreate函数解析 本实验是基于STM32F103开发移植FreeRTOS实时操作系统&#xff0c;信号量实战…

Linux:基础IO(三.软硬链接、动态库和静态库、动精态库的制作和加载)

上次介绍了基础IO&#xff08;二&#xff09;&#xff1a;Linux&#xff1a;基础IO&#xff08;二.缓冲区、模拟一下缓冲区、详细讲解文件系统&#xff09; 文章目录 1.软硬链接1.1硬链接1.2软链接使用场景 2.动态库和静态库1.1回顾1.2静态库的制作和使用为什么要有库制作者角度…

PyMuPDF 操作手册 - 01 从PDF中提取文本

文章目录 一、打开文件二、从 PDF 中提取文本2.1 文本基础操作2.2 文本进阶操作2.2.1 从任何文档中提取文本2.2.2 如何将文本提取为 Markdown2.2.3 如何从页面中提取键值对2.2.4 如何从矩形中提取文本2.2.5 如何以自然阅读顺序提取文本2.2.6 如何从文档中提取表格内容2.2.6.1 提…

人机恋爱新趋势:与AI男友谈恋爱的甜蜜与挑战

"我曾经把ChatGPT当成工具&#xff0c;从未追过星&#xff0c;也没有嗑过CP。没想到&#xff0c;到了36岁&#xff0c;我竟然嗑上了AI男友。Open AI&#xff0c;你赢了。你不仅是最好的AI公司&#xff0c;还是乙女游戏公司。" 转行大龄互联网人&#xff0c;走遍20国…

RT-Thread的Finsh实现学习

学习原因 工作中&#xff0c;使用同事开发的调试软件&#xff0c;输入参数打印的函数名就可以打印参数&#xff0c;但看不到代码实现&#xff0c;只能用自己微薄的知识积累去猜一下&#xff0c;之前尝试过&#xff0c;专门写一个函数&#xff0c;去解析编译生成的map文件&#…

一、Jquery入门(超详)

* [5.3 jQuery 对象和 DOM 对象之间的相互转换](about:blank#53_jQuery__DOM__271)* * [5.3.1 jQuery 对象转换为 DOM 对象](about:blank#531_jQuery__DOM__282)* [5.3.2 DOM 对象转换为 jQuery 对象](about:blank#532_DOM__jQuery__295)六、 解决 jQuery 和其他库的冲…

AI数据分析:集中度分析和离散度分析

在deepseek中输入提示词&#xff1a; 你是一个Python编程专家&#xff0c;要完成一个Python脚本编写的任务&#xff0c;具体步骤如下&#xff1a; 读取Excel表格&#xff1a;"F:\AI自媒体内容\AI行业数据分析\toolify月榜\toolify2023年-2024年月排行榜汇总数据.xlsx&qu…