在webpack中,默认只能处理一部分ES6的新语法,一些更高级的ES6语法或者ES7语法,

webpack是处理不了的;这时候,就需要借助于第三方的loader,来帮助webpack处理这些高级的语法,

当第三方loader把高级语法转为低级的语法之后,会把结果交给webpack去打包到bundle.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的配置文件,在module节点下的rules数组中,添加一个 新的匹配规则:

2.1{test:/.js$/,use:'babel-loader',exclude:/node_modules/}

2.2注意:在配置babel的loader规则的时候,必须把node_modules目录,通过exclude选项排除掉:

原因有两个:

2.2.1如果不排除node_modules,则Babel会把node_modules中所有的第三方JS文件,

都打包编译,这样,会非常消耗CPU,同时,打包速度非常慢;

2.2.2哪怕,最终,Babel把所有node_modules中的JS转换完毕了,但是,项目也无法正常运行!

3.在项目的根目录中,新建一个叫做 .babelrc 的Babel配置文件,这个配置文件,属于JSON格式,

所以,在写 .babelrc配置的时候,必须符合JSON语法规范:不能写注释,字符串必须使用双引号

3.1在.babelrc写如下配置:大家可以把preset翻译成【语法】的意思

        // {
// "presets":["env","stage-0"],
// "plugins":["transform-runtime"]
// }

4.了解:目前,我们安装的 babel-preset-env,是比较新的ES语法,之前,我们安装的是

babel-preset-es2015,现在,出现了一个更新的 语法插件,叫做babel-preset-env,

它包含了 所有的和es***相关的语法

17 webpack中babel的配置的更多相关文章

  1. 17 webpack中babel的配置——静态属性与实例属性

    // class关键字,是ES6中提供的新语法,是用来实现ES6中面向对象编程的方式 class Person{ // 使用static关键字,可以定义静态属性 // 所谓的静态属性,就是可以直接通过 ...

  2. webpack基础以及webpack中babel的配置

    webpack 安装 npm 初始化,控制台输入 npm init -y webpack 安装 npm i webpack webpack-cli -D 新建 webpack.config.js co ...

  3. webpack中babel配置 --- runtime-transform和babel-pollfill

    webpack - babel配置 babel是一个javascript编译器,是前端开发中的一个利器.它突破了浏览器实现es标准的限制,使我们在开发中可以使用最新的javascript语法. 通过构 ...

  4. webpack中 resolve.alias 配置,@import相关踩坑

    1.在使用webpack打包项目时,可以在配置文件中配置resolve.alias来定义一些绝对路径,方便在项目中灵活使用路径,举例如下: resolve: { extensions: [‘.js‘, ...

  5. webpack中devtool的配置方案[开发模式]---[线上模式]

    // 开发模式下 module.exports = { mode: 'development', devtool: 'cheap-module-eval-source-map' } // 线上模式下 ...

  6. javascript SDK开发之webpack中eslint的配置

    eslint的好处就不多说了.代码检查,代码报错, 智能提示,让开发人员更规范的撸代码等等. 1.安装依赖 npm install --save-dev eslint eslint-friendly- ...

  7. webpack中alias别名配置

    resolve:{ alias:{ bootcss:__dirname + '/node_modules/.3.3.7@bootstrap/dist/css/bootstrap.min.css' } ...

  8. 【转】webpack中关于source map的配置

    Webpack中sourcemap的配置 sourcemap是为了解决开发代码与实际运行代码不一致时帮助我们debug到原始开发代码的技术.尤其是如今前端开发中大部分的代码都经过编译,打包等工程化转换 ...

  9. Webpack中的sourcemap

    Webpack中sourcemap的配置 sourcemap是为了解决开发代码与实际运行代码不一致时帮助我们debug到原始开发代码的技术.尤其是如今前端开发中大部分的代码都经过编译,打包等工程化转换 ...

随机推荐

  1. 性能测试监控:Jmeter+Collectd+Influxdb+Grafana

    系统性能指标图示例: 采集数据(collectd)-> 存储数据(influxdb) -> 显示数据(grafana) InfluxDB 是 Go 语言开发的一个开源分布式时序数据库,非常 ...

  2. python实践项目二:列表转字符串

    将列表各元素转换为字符串并以规定形式返回. 假定有下面这样的列表:spam = ['apples', 'bananas', 'tofu', 'cats'],将其转换成字符串:'apples, bana ...

  3. 探索安卓热修复框架AndFix的奥秘

    虽然阿里的AndFix框架已经出来很长时间了,但是还不了解它的同学依然挺多,接下来就跟着我一起来到AndFix的世界里一起看看,如何达到不用重新安装app就可以修复bug. 1.什么是AndFix? ...

  4. 《ucore lab8》实验报告

    资源 ucore在线实验指导书 我的ucore实验代码 练习1: 完成读文件操作的实现(需要编码) 题目 首先了解打开文件的处理流程,然后参考本实验后续的文件读写操作的过程分析,编写在sfs_inod ...

  5. es操作手册

    0 _search查询数据时可以指定多个index和type GET /index1,index2/type1,type2/_search GET /_all/type1/_search 相当于查询全 ...

  6. 二进制知识(java中的位操作)

    文章目录 前言 机器数 真值 原码 反码 补码 计算机中保存的都是补码 位操作 强制转换,精度丢失 前言 讲二进制的东西,必须要说明是多少位机器,八位机上的 1000 1000 和 十六位机上的 10 ...

  7. page分页问题,根据页码获取对应页面的数据,接口调用

    添加一个log.js文件,进行接口调用. import axios from '@/libs/api.request' const MODULE_URL = '/log'; export const ...

  8. 07 IO流(四)——文件字节流 FileInputStream/FileOutputStream与文件的拷贝

    两个类的简述 专门用来对文件进行读写的类. 父类是InputStream.OutputStream 文件读入细节 FileOutputStream流的构造方法:new FileOutputStream ...

  9. 为什么无人机测量主流现在都不用RTK技术,而是PPK技术【转】

    为什么无人机测量主流现在都不用RTK技术,而是PPK技术_宇辰网_让世界读懂无人机_全球专业无人机资讯|电商|大数据服务平台 大疆Phantom 4 RTK正式发布_宇辰网_让世界读懂无人机_全球专业 ...

  10. 【数论】小A进学校

    小A进学校 题目描述 近日,清华大学挖出来一个明清古墓.小A决定冒充考古系科研人员去盗墓.他遇到的第一个难关是来自校门口保安的质疑,因为小没有清华学生证,所以保安决定通过问问题的方式验证小A的身份. ...