当前位置: 首页 > news >正文

ES6模块化使用_前端培训

使用

通常我们会借助Babel和Browserify来使用ES6的模块化

下面介绍ES6-Babel-Browserify使用教程

简单来说就一句话:

使用Babel将ES6编译为ES5代码,使用Browserify编译打包js

步骤:

定义package.json文件

安装 babel-cli,babel-preset-es2015和 browserify

  • npm install babel-cli browserify -g
  • npm install babel-preset-es2015 –save-dev

定义.babelrc文件

  {
    “presets”: [“es2015”]
  }

定义模块代码

//module1.js文件
// 分别暴露
export function foo() {
  console.log(‘foo() module1’)
}
export function bar() {
  console.log(‘bar() module1’)
}

//module2.js文件
// 统一暴露
function fun1() {
  console.log(‘fun1() module2’)
}
function fun2() {
  console.log(‘fun2() module2’)
}
export { fun1, fun2 }

//module3.js文件
// 默认暴露 可以暴露任意数据类项,暴露什么数据,接收到就是什么数据
export default () => {
  console.log(‘默认暴露’)
}

// app.js文件
import { foo, bar } from ‘./module1’
import { fun1, fun2 } from ‘./module2’
import module3 from ‘./module3’
foo()
bar()
fun1()
fun2()
module3()

编译并在index.html中引入

使用Babel将ES6编译为ES5代码(但包含CommonJS语法) : babel js/src -d js/lib

使用Browserify编译js : browserify js/lib/app.js -o js/lib/bundle.js

然后在index.html文件中引入

 <script type=”text/javascript” src=”js/lib/bundle.js”></script>

此外第三方库(以jQuery为例)如何引入呢? 首先安装依赖npm install jquery@1 然后在app.js文件中引入

//app.js文件
import { foo, bar } from ‘./module1’
import { fun1, fun2 } from ‘./module2’
import module3 from ‘./module3’
import $ from ‘jquery’

foo()
bar()
fun1()
fun2()
module3()
$(‘body’).css(‘background’, ‘green’)

整个目录如下:

相关文章:

  • Git工具的使用
  • 电商订单全流程可观测最佳实践
  • 诸子百家的十二家学派
  • 活动回顾 | Mini XMan线上快闪活动圆满结束!
  • 头条小程序模板全行业合集,头条小程序制作平台分享
  • 基于关联规则的网络信息安全风险度量分析模型
  • Chapter 5 Deep Learning
  • Windows与网络基础-8-windows基本命令-文本操作
  • 元宇宙办公室APP功能系统软件源码开发
  • Kafka监控与指标解析-UnderReplicatedPartitions
  • css:移动端实现1px、0.5px的细线
  • 解决方案|电力行业应如何应对数字化转型危机
  • 使用iptables动态映射Docker容器端口
  • 低代码怎么用?三位一体发挥最大价值!
  • Libra论文阅读笔记-A unified congestion control framework for diverse application
  • 网络传输文件的问题
  • 【css3】浏览器内核及其兼容性
  • Android 控件背景颜色处理
  • bearychat的java client
  • httpie使用详解
  • iOS筛选菜单、分段选择器、导航栏、悬浮窗、转场动画、启动视频等源码
  • JavaSE小实践1:Java爬取斗图网站的所有表情包
  • Odoo domain写法及运用
  • vue:响应原理
  • Vue官网教程学习过程中值得记录的一些事情
  • 计算机常识 - 收藏集 - 掘金
  • 开源SQL-on-Hadoop系统一览
  • 力扣(LeetCode)22
  • 浅谈Golang中select的用法
  • 融云开发漫谈:你是否了解Go语言并发编程的第一要义?
  • 如何学习JavaEE,项目又该如何做?
  • 入口文件开始,分析Vue源码实现
  • 小李飞刀:SQL题目刷起来!
  • 一加3T解锁OEM、刷入TWRP、第三方ROM以及ROOT
  • 蚂蚁金服CTO程立:真正的技术革命才刚刚开始
  • 如何用纯 CSS 创作一个货车 loader
  • ​学习一下,什么是预包装食品?​
  • # 达梦数据库知识点
  • #laravel 通过手动安装依赖PHPExcel#
  • #中的引用型是什么意识_Java中四种引用有什么区别以及应用场景
  • (2)关于RabbitMq 的 Topic Exchange 主题交换机
  • (4)(4.6) Triducer
  • (51单片机)第五章-A/D和D/A工作原理-A/D
  • (html5)在移动端input输入搜索项后 输入法下面为什么不想百度那样出现前往? 而我的出现的是换行...
  • (pojstep1.1.1)poj 1298(直叙式模拟)
  • (二开)Flink 修改源码拓展 SQL 语法
  • (十一)手动添加用户和文件的特殊权限
  • (五)c52学习之旅-静态数码管
  • (转)EXC_BREAKPOINT僵尸错误
  • ./和../以及/和~之间的区别
  • .Net Memory Profiler的使用举例
  • .NET Micro Framework初体验(二)
  • .net 程序 换成 java,NET程序员如何转行为J2EE之java基础上(9)
  • .NET 中让 Task 支持带超时的异步等待
  • .Net(C#)自定义WinForm控件之小结篇