babel基础配置
babel是干什么的
es6语法已经出来很多年,但各家游览器对es6的支持各不相同。为了解决这个问题,babel应运而生。
babel支持把es6语法编译成es5,完全兼容各家游览器,避免兼容性问题出现。
配置babel的时候分两种情况
- 业务贷款开发
- 类库代码开发
why?
babel支持把es6编译成es5,使各家游览器支持。比如es6语法Map、Set。低版本游览器不兼容,需要babel支持。这个时候就用到了@babel/polyfill(垫片,@babel/polyfill使用的时候需要放到业务js代码的最前面),就是重新定义Map方法。
比如 代码
new Map()
babel编译后还是 如上,但是 bable 会在全局定义一个 Map 方法(因为全局定义可能会造成命名污染),如果你是在开发项目业务代码的时候,其实不太用考虑这个问题。但是如果你是在开发类库代码的时候,你的代码可能会被其他的人拿去用,这样就比较危险。
故两种情况配置方法有些许区别!
如下:
业务代码开发
命令行安装babel包
npm install --save-dev babel-loader @babel/core
npm install @babel/preset-env --save-dev
webpack.config.js 配置
module: {
rules: [
{
test: /\.js$/,
// exclude 排除掉不进行 babel-loader 编译
exclude: /(node_modules|bower_components)/,
use: {
loader: 'babel-loader',
// 配置项 很多
options: {
presets: ['@babel/preset-env']
}
}
}
]
}
如果配置的babel的配置项很多,全部集中在webpack.config.js不便于代码的查看和管理
故 可以配置 .babelrc (在webpack.config.js同级目录中新建 .babelrc )
// webpack.config.js中
module: {
rules: [
{
test: /\.js$/,
// exclude 排除掉不进行 babel-loader 编译
exclude: /(node_modules|bower_components)/,
use: {
loader: 'babel-loader'
}
}
]
} //.babelrc中
{
"presets": ["@babel/preset-env", {
targets: {
chrome: "67"
},
// 这个配置项配置了 说明在入口文件中 会自动的给我们加上 import '@babel/polyfill' 的功能,故在业务代码中我们不需要手动的添加 import '@babel/polyfill'
useBuiltIns: "usage"
}]
}
组件/类库代码开发(比如开发npm包)
命令行安装依赖包
npm install --save-dev @babel/plugin-transform-runtime
npm install --save @babel/runtime
npm install --save @babel/runtime-corejs2
webpack.config.js
module: {
rules: [
{
test: /\.js$/,
// exclude 排除掉不进行 babel-loader 编译
exclude: /node_modules/,
use: {
loader: 'babel-loader',
options:{
"plugins": [
[
// 不在全局中定义变量
"@babel/plugin-transform-runtime",
{
"absoluteRuntime": false,
"corejs": 2,
"helpers": true,
"regenerator": true,
"useESModules": false
}
]
]
}
}
}
]
}
babel基础配置的更多相关文章
- webpack+babel+react+antd技术栈的基础配置
webpack+babel+react+antd技术栈的基础配置 前段时间使用webpack+babel+react+antd做了一套后台管理系统,刚开始被一大堆的新知识压的喘不过气来,压力挺大的.还 ...
- webpack基础以及webpack中babel的配置
webpack 安装 npm 初始化,控制台输入 npm init -y webpack 安装 npm i webpack webpack-cli -D 新建 webpack.config.js co ...
- webpack3.x版本实战案例【基础配置篇】(一)
本文旨在通过一个一个实战例子来学习webpack如何配置,更加深入的学习webpack在实战项目中如何配置. 我们学习哪些配置呢? [基础配置] 打包JS 编译ES6 编译typeScript 打包公 ...
- 深入浅出 webpack 之基础配置篇
前言 前端工程化经历过很多优秀的工具,例如 Grunt.Gulp.webpack.rollup 等等,每种工具都有自己适用的场景,而现今应用最为广泛的当属 webpack 打包了,因此学习好 webp ...
- StackExchange.Redis帮助类解决方案RedisRepository封装(基础配置)
本文版权归博客园和作者吴双本人共同所有,转载和爬虫,请注明原文地址.http://www.cnblogs.com/tdws/p/5815735.html 写在前面 这不是教程,分享而已,也欢迎园友们多 ...
- Hibernate 基础配置及常用功能(三)
本章重点讲述Hibernate对象的三种状态以及如何配置二级缓存 有关Hibernate的三种状态如何相互转换网上都能查到,官方文档描述的也比较详细.这里主要是针对几个重点方法做代码演示. 一.状态转 ...
- Emacs学习心得之 基础配置
作者:枫雪庭 出处:http://www.cnblogs.com/FengXueTing-px/ 欢迎转载 Emacs学习心得之 基础配置 1.前言2.基础配置 一.前言 本篇博文记录了Emacs的一 ...
- nginx 的基础配置[转]
nginx 的基础配置 分类: 工具软件2013-11-13 23:26 11人阅读 评论(0) 收藏 举报 目录(?)[-] 管理配置文件 全局配置 虚拟机server配置 location配置 ...
- freeRadius 基础配置及测试
国内私募机构九鼎控股打造APP,来就送 20元现金领取地址:http://jdb.jiudingcapital.com/phone.html 内部邀请码:C8E245J (不写邀请码,没有现金送) 国 ...
随机推荐
- vscode 常用命令行
Ctrl+Shift+P: 打开命令面板 打开一个新窗口: Ctrl+Shift+N 关闭窗口: Ctrl+Shift+W 新建文件 Ctrl+N 代码行缩进 Ctrl+[ . Ctrl+] 上下 ...
- centons6升级gcc和glibc版本
一.先升级gcc 这里配置yum源来升级 centos6系列更换阿里yum源 1.首先备份原来的cent os官方yum源 cp /etc/yum.repos.d/CentOS-Base.repo / ...
- html中代替空格、大于号、小于号等字符编码
数字表示法的不方便之处,在于必须知道每个字符的码点,很难记忆.为了能够快速输入,HTML 为一些特殊字符,规定了容易记忆的名字,允许通过名字来表示它们,这称为实体表示法(entity). 实体的写法是 ...
- 第十三章 存储之volume
容器磁盘上的文件的生命周期是短暂的,这就使得在容器中运行重要应用时会出现一些问题.首先,当容器崩溃时,kubelet 会重启它,但是容器中的文件将丢失——容器以干净的状态(镜像最初的状态)重新启动.其 ...
- python 读 xlsx
前言 xlsx写方法参考此连接:http://www.cnblogs.com/whf191/p/5482485.html xlrd是用来读的,使用前需安装 pip install xlrd 例子 fn ...
- C++学习笔记【1】——"\n"与endl的区别是什么?
#include <iostream> using namespace std; int main() { cout << "Hello, world!" ...
- C++ 之获取map元素[转]
链接:https://www.cnblogs.com/jianfeifeng/p/11089799.html 对于map对象, count成员返回值只能是0或者1,map容器只允许一个键对应一个实例. ...
- Kaggle数据集下载
Kaggle数据集下载步骤: 安装Kaggle库: 注册Kaggle账户: 找到数据集,接受rules: 在My Account>>API中,点击Create New API Token, ...
- Codeforces 961E - Tufurama 树状数组
转自:https://blog.csdn.net/my_sunshine26/article/details/79831362 题目大意: i从1开始 基本思路: 完全没思路,所以上来就二分,果不其然 ...
- ubuntu下oracle 数据库安装
环境:腾讯云 一. 由于腾讯云直接下载oracle太慢,先安装docker 1.sudo apt update 2.接下来,使用apt安装一些允许通过HTTPS才能使用的软件包: sudo apt i ...