【ES】笔记-使用Babel对ES6模块化代码进行转换

news/2024/7/10 23:59:40 标签: elasticsearch, 笔记, es6

使用Babel对ES6模块化代码进行转换

    • 初始化项目
    • 安装依赖
    • 使用命令对我们的代码进行编译

初始化项目

在项目跟目录下执行npm init -y初始化项目

npm init --yes

安装依赖

同样项目根目录下执行npm install babel-cli babel-preset-env browserify -D

babel-cli:babel的脚手架工具
babel-preset-env:将最新的es6的语法转换成es5
browserify:打包工具,类似于webpack,但是比webpack简单,一般在项目中使用webpack,在这里只是简单演示,所以选择browserify

作者:5cc9c8608284
链接:https://www.jianshu.com/p/ed909b18028e
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

npm i babel-cli babel-preset-env browserify
npm i(i 是 install缩写) babel-cli babel-preset-env browserify -D(这样安装是局部安装)

注意:用npm i安装的模块无法用npm uninstall删除,用npm uninstall i才卸载掉

使用命令对我们的代码进行编译

因为我们是局部安装,所以使用npx来执行babel命令

 npx babel src/js -d dist/js --presets=babel-preset-env

执行完之后就可以看到在我们的项目跟目录下多出了一个dist目录,里面是经过打包的js代码,如下所示:
在这里插入图片描述
这是我们在index.html文件里引入dist/app.js文件,并提供vscode的liverServer将其打开,这是你就会发现浏览器控制台有个报错:
在这里插入图片描述

这是因为浏览器不能识别require语法,我们需要对编译过的文件再进行一次打包,执行以下命令:

npx browserify dist/js/app.js -o dist/bundle.js

dist/js/app.js:入口文件
-o:-o后面紧跟的是打包后文件的存放路径

执行完在这个命令后,在dist目录下就生成了一个bundle.js文件,我们在index.html中引入这个文件,并在浏览器里打开,我们导入的内容就可以正确的输出了,如下所示:
在这里插入图片描述

当我们修改代码之后需要重新执行

npx babel src/js -d dist/js --presets=babel-preset-env
npx browserify dist/js/app.js -o dist/bundle.js

这两条命令,才能在控制台看到我们想要的结果,比如我修改了app.js中的代码:

import * as test1 from './test1.js'
import * as test2 from './test2.js'
import * as test3 from './test3.js'
console.log(test1.name);
console.log(test2.study());
console.log(test3.default.school);

执行完上面两条命令后,再次打开浏览器控制台就可以看到一下输出结果了:

这样转换了之后,不管我们的浏览器支不支持es6语法,都能正确运行代码了


http://www.niftyadmin.cn/n/5082733.html

相关文章

【师兄啊师兄2】公布,李长寿成功渡劫,敖乙叛变,又一美女登场

Hello,小伙伴们,我是小郑继续为大家深度解析国漫资讯。 由玄机制作的师兄啊师兄第一季这才完结没有多久,没想到现在第二季就公布了,连海报和预告都出来了,看样子已经做得差不多了。预告看下来,能够明显感觉到官方又进步…

Java中 创建不可变集合

常规写法 以往我们创建一些不可变集合的时候&#xff0c;通常是这样写的&#xff1a; // 不可变的Set Set<String> set new HashSet<>(); set.add("a"); set.add("b"); set.add("c"); set Collections.unmodifiableSet(set); //…

大开眼界:Netbios 上古时代如何用一个参数实现一个世界 负面典型

今天的程序员普遍遵循这样的接口设计原则&#xff1a;通过不同的接口名和参数列表准确表达不同的功能。 这似乎是理所当然的&#xff0c;然而上古时代却并非如此&#xff0c;比如Netbios协议整个协议的接口只有一个函数、一个参数&#xff01; 当初是基于什么原则这样设计不晓得…

NIO基础-ByteBuffer,Channel

文章目录 1. 三大组件1.1 Channel1.2 Buffer1.2 Selector 2.ByteBuffer2.1 ByteBuffer 正确使用姿势2.2 ByteBuffer 结构2.3 ByteBuffer 常见方法分配空间向 buffer 写入数据从 buffer 读取数据mark 和 reset字符串与 ByteBuffer 互转分散度集中写byteBuffer黏包半包 3. 文件编…

Verilog功能模块——异步FIFO

前言 FIFO的功能 FIFO在FPGA中应用很多&#xff0c;它主要有以下功能&#xff1a; 数据缓存&#xff0c;很多时候数据发送速度和数据接收速度并不实时匹配&#xff0c;而在其中插入一个FIFO&#xff0c;来临时存储数据&#xff0c;就能平衡发送和接收速度组合与分解数据&…

使用kettle做数据抽取流程

Kettle 是一个功能强大的 ETL 工具&#xff0c;用于实现数据的抽取、转换和加载。下面是使用 Kettle 进行数据抽取的基本流程&#xff1a; 1.准备数据源 首先&#xff0c;需要为 Kettle 配置数据源。数据源可以是数据库、文件系统或其他数据存储方式。在 Kettle 主界面的左侧&…

快手新版本sig3参数算法还原

Frida Native层主动调用 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81…

Unity头发飘动效果

Unity头发飘动 介绍动作做头发飘动头发骨骼绑定模拟物理组件 UnityChan插件下载UnityChan具体用法确定人物是否绑定好骨骼节点&#xff08;要做的部位比如头发等&#xff09;给人物添加SpringManager骨骼管理器给骨骼节点添加SpringBone这里给每个头发骨骼都添加上SpringBone。…