2-babel和polyfill

babel转码器,用于把es6的语法转成浏览器支持的es5或者es3

babel转换后的代码是遵循commonJS规范的,而这个规范,浏览器并不能识别。因此导入到浏览器中会报错,而nodeJS是commonJS的实现者,所以在babel转换后的代码是可以在node中运行的。

为了将babel生成的commonJS规范的es5写法能够在浏览器上直接运行,我们可以使用webpack这个打包工具来完成,因为webpack本身也是遵循commonJS这个规范的

在es2015之前,js没有模块化的规范,Nodejs的CommonJS率先制定了js的模块化标准,当然也是仅仅限制在Nodejs的服务器环境下使用

webpack如何安装使用babel-loader?(注意:新版本的Babel7中对官方提供的依赖使用了命名空间@babel)

1.下载

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

2.安装完上述内容之后,需要设置一个.babelrc的文件放在根目录下,内容为

{
  "presets": ["env"]
}

注:项目中现在一般直接使用babel-preset-env,它整合了babel-preset-es2015, babel-preset-es2016, and babel-preset-es2017,而且可以配置需要支持的浏览器/运行环境,仅转化需要支持的语法,使文件更轻。

Babel默认只转换新的JavaScript句法(syntax),而不转换新的API,比如Iterator、Generator、Set、Maps、Proxy、Reflect、Symbol、Promise等全局对象,以及一些定义在全局对象上的方法(比如Object.assign)都不会转码;如果想让这个方法运行,必须使用babel-polyfill,为当前环境提供一个垫片。

安装命令如下。

$ npm install --save babel-polyfill

然后,在脚本头部,加入如下一行代码。

import 'babel-polyfill';
// 或者
require('babel-polyfill');
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容