webpack 与 babel

作者: admin 日期: 2018-02-11 10:10:17 人气: - 评论: 0

最近发现很多前端开发者其实搞不清webpack 和 babel的关系,总结来说

webpack是一个开源的高度可配置的前端资源模块化打包工具,而babel是一个开源高度可配置的javascript相关的代码编译器,两者都是使用纯javascript开发的


在webpack环境下babel是作为一个webpack-loader工作的,主要作用是把es6格式的javascript代码转换为可以在浏览器端上运行的符合es5标准的代码,或者是把使用react jsx 语法写的代码展开成合法的javascript代码


1、在webpack配置文件中配置babel-loader,非常简单

{
test: /\.js$/,
 loader: 'babel-loader',
 include: [resolve('src'), resolve('test')]
},

选中所有的js文件使用babel-loader处理就可以了


2、配置babel,需要在项目根目录下创建一个.babelrc 文件,在我的项目中配置如下


{
"presets": [
["es2015", { "modules": false }],
   "stage-0"
 ],
 "plugins": ["transform-vue-jsx","transform-runtime"],
 "comments": false,
 "env": {
"test": {
"plugins": [ "istanbul" ]
}
}
}


这些配置中最重要的是plugins项目,比如你配置了transform-vue-jsx之后就可以在js文件中使用react jsx语法了,

如果配置了transform-do-expressions插件就可以在书写javascript的时候使用语句块表达式了。。。等等

一般一个babel-plugin 只处理一个语法特性,

所以在babel的配置文件中有了presets的概念,就是当你设置了一个preset之后,会默认给你加载一堆相关的babel-plugin,

比如这里我设置了es2015之后就预装了一些babel插件使得我可以在代码中使用es2015标准中的语法,

Stage-X指的是一些还没进入es标准中的提案,我这里使用了Stage-0,将会预置Stage-0,Stage-1,Stage-2,Stage-3的全部插件,使得我可以使用还在提案阶段的新语法

相关内容

发表评论
更多 网友评论0 条评论)
暂无评论

Copyright © 2012-2014 我的代码板 Inc. 保留所有权利。

页面耗时0.0243秒, 内存占用1.83 MB, 访问数据库13次

闽ICP备15009223号-1