17 webpack中babel的配置
在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的配置的更多相关文章
- 17 webpack中babel的配置——静态属性与实例属性
// class关键字,是ES6中提供的新语法,是用来实现ES6中面向对象编程的方式 class Person{ // 使用static关键字,可以定义静态属性 // 所谓的静态属性,就是可以直接通过 ...
- webpack基础以及webpack中babel的配置
webpack 安装 npm 初始化,控制台输入 npm init -y webpack 安装 npm i webpack webpack-cli -D 新建 webpack.config.js co ...
- webpack中babel配置 --- runtime-transform和babel-pollfill
webpack - babel配置 babel是一个javascript编译器,是前端开发中的一个利器.它突破了浏览器实现es标准的限制,使我们在开发中可以使用最新的javascript语法. 通过构 ...
- webpack中 resolve.alias 配置,@import相关踩坑
1.在使用webpack打包项目时,可以在配置文件中配置resolve.alias来定义一些绝对路径,方便在项目中灵活使用路径,举例如下: resolve: { extensions: [‘.js‘, ...
- webpack中devtool的配置方案[开发模式]---[线上模式]
// 开发模式下 module.exports = { mode: 'development', devtool: 'cheap-module-eval-source-map' } // 线上模式下 ...
- javascript SDK开发之webpack中eslint的配置
eslint的好处就不多说了.代码检查,代码报错, 智能提示,让开发人员更规范的撸代码等等. 1.安装依赖 npm install --save-dev eslint eslint-friendly- ...
- webpack中alias别名配置
resolve:{ alias:{ bootcss:__dirname + '/node_modules/.3.3.7@bootstrap/dist/css/bootstrap.min.css' } ...
- 【转】webpack中关于source map的配置
Webpack中sourcemap的配置 sourcemap是为了解决开发代码与实际运行代码不一致时帮助我们debug到原始开发代码的技术.尤其是如今前端开发中大部分的代码都经过编译,打包等工程化转换 ...
- Webpack中的sourcemap
Webpack中sourcemap的配置 sourcemap是为了解决开发代码与实际运行代码不一致时帮助我们debug到原始开发代码的技术.尤其是如今前端开发中大部分的代码都经过编译,打包等工程化转换 ...
随机推荐
- 任务调度Quartz.Net之Windows Service
这个应该是关于Quartz.Net使用的最后一篇文章了,之前的介绍都是基于Web的,这种实现任务调度的方式很少见,因为不管是MVC.WebApi还是WebService,它们都需要寄宿在IIS上运行, ...
- php 文字转换成拼音
<?php //中文字转拼音 $d=array( array("a",-20319), array("ai",-20317), array("a ...
- Zuul【自定义Filter】
实际业务中,如果要自定义filter过滤器,只需集成ZuulFIlter类即可,该类是个抽象类,它实现了IZuulFIlter接口,我们需要实现几个方法,如下示例: import static org ...
- Git--远程仓库版本回退方法
Git--远程仓库版本回退方法 1 简介 最近在使用git时遇到了远程分支需要版本回滚的情况,于是做了一下研究,写下这篇博客. 2 问题 如果提交了一个错误的版本,怎么回退版本? 如果提交了一个错误的 ...
- [C++] 二叉树计算文件单词数
目录 前置技能 构造和遍历二叉树 文件的打开.读取和写入 需求描述 读取文件 构建二叉树 格式化输入输出 具体实现 main.cpp binarytree.h binarytree.cpp 使用二叉树 ...
- c++ 编译 curl 报错 数组‘__curl_rule_01__’的大小为负 解决方法
背景:在原有的项目GCC编译环境下(arm-linux 32位),增加x86-linux 64位的编译环境,编译curl库的时候发生错误. 其他:编译服务器为64位Centos 编译错误提示 /inc ...
- QueryList::Query() The received content is empty!的经准灵活解决办法
QueryList::Query() The received content is empty! 最近因为项目问题出现The received content is empty!,我也有过在网上寻找 ...
- php异常处理面向对象和面向函数使用
要使用异常,首先得知道那些部分会产生异常,产生什么类型异常(php常见异常见下方符表),对产生的异常该怎么办. 如果知道程序的那些部分会产生异常,那么就对这一部分使用try关键字: 如果知道了产生异常 ...
- 《Java Web开发实战》——Java工程师必备干货教材
一年一度毕业季,又到了简历.offer漫天飞,失望与希望并存的时节.在IT行业,高校毕业生求职时,面临的第一道门槛就是技能与经验的考验,但学校往往更注重学生的理论知识,忽略了对学生实践能力的培养,因而 ...
- javascript-state-machine
import StateMachine from 'javascript-state-machine' import EventEmitter from 'events' /** * 上传的文档的状态 ...