Babel编译js(可以把es高级语法 转换为 低级语法)

16 篇文章 0 订阅


在ES6中,提供新语法,用 class 关键字,是实现 面型对象变成的方式:


// class 关键字,是ES6中提供的新语法,是用来 使用 ES6 中面向对象编程的方式
class Person {
    // static 静态的。
    // 使用 static 关键字,可以定义静态属性
    // 所谓的静态属性:就是可以直接 通过类名,直接访问的属性
    // 实例属性:只能通过类的实例,来访问的属性,叫做实例属性
    static info = {
        name: 'zs',
        age: 20
    }
}

// 访问 Person 类身上的 info 静态属性
console.log(Person.info);
webapck 打包ES6高级语法的时候出现的问题

在webpack中,默认只能处理一部分ES6的新语法,一些更高级的ES6语法,或者ES7等语法,webpack是处理不了的;这时候,就要借助 第三方loader ,来帮助 webpack 处理这些高级的语法,当第三方loader 把高级的语法转变为 低级的语法后,会交给 webpack 去打包到你自己定义的 dist 文件目录下的 .js 文件中

Babel 可以把 高级语法 转变为 低级语法
步骤:
  1. 在 webpack 中,可以运行如下两套命令,安装两套包,去安装 Babel 相关的 loader功能:
    1.1、 第一套包: cnpm i babel-core babel-loader babel-plugin-transform-runtime -D
    1.2、 第二套包: cnpm i babel-preset-env babel-preset-stage-0 -D

  2. 打开webpack 的配置文件webapck.config.js,在 module 节点下的 rules 数组中,添加一个新的 匹配规则:
    2.1、 {test:/\.js$/,use:'babel-loader',exclude:/node_modules/}
    2.2、 注意:在配置 babel 的 loader 规则的时候,必须把 node_modules 目录,通过 exclude 选项排除掉:原因有俩:

    • 如果不排除 node_modules ,则Babel 会把 node_modules 中所有的 第三方 JS 文件,都打包编译,这样,会非常消耗CPU,同时,打包速度非常慢
    • 哪怕,最终,Babel 把所有 node_modules 中的JS转换完毕了,但是,项目也无法正常运行
  3. 在项目的根目录中,新建一个 叫做 .babelrc 的Babel配置文件,这个配置文件,属于JSON格式,所以,在写 .babelrc 配置的时候,必须符合JSON语法规范:不能写注释,字符串必须用双引号
    3.1、 在 .babelrc 写如下配置: 大家可以把 presets 翻译成 语法 的意思

    {
    	"presets": ["env","stage-0"],
    	"plugins": ["transform-runtime"]
    }
    
  4. 了解:目前,我们安装的 babel-preset-env ,是比较新的ES语法,之前,我们安装的babel-preset-es2015, 现在,出了一个更新的 语法插件,叫做 babel-preset-env,它包含了 所有的 和es***相关的语法

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值