本文作者: jsweibo
本文链接: https://jsweibo.github.io/2019/08/04/babel%E9%85%8D%E7%BD%AE%E4%B8%AD%E7%9A%84plugins%E5%B1%9E%E6%80%A7/
摘要
本文主要讲述了:
- 什么是 plugins
- plugins 的分类
- plugins 名称缩写
- 执行顺序
- 配置
正文
什么是 plugins
babel 是 JavaScript 编译器。但开箱即用的 babel 什么也不做。它只会把源文件复制到构建目录去。
要让 babel 做事情,必须配置plugins
(插件)和presets
(预设)属性。
plugins
指单个插件,presets
指一组预设的插件集。
示例:
learn_babel/babel.config.js
1 | module.exports = { |
plugins 的分类
根据实际用途,plugins 可以分为 2 类:
- 转换 plugins
- 语法 plugins
转换 plugins
转换 plugins 用于转换代码。
示例:使用@babel/plugin-transform-arrow-functions
转换 ES6 中的箭头函数。
learn_babel/babel.config.js
1 | module.exports = { |
源文件:
learn_babel/index.js
1 | const fn = () => 1; |
编译:
1 |
|
输出:
1 | const fn = function () { |
语法 plugins
语法 plugins 仅用于解析语法(不转换)。
注意:如果已经配置了转换 plugins,那么对应的语法 plugins 会自动开启,不再需要重复配置。
示例:使用babel-plugin-jsx
解析 JSX 语法。
learn_babel/babel.config.js
1 | module.exports = { |
plugins 名称缩写
如果 plugins 的名称以babel-plugin-
作为前缀,那么可以在配置的时候,将前缀省略。
示例:
learn_babel/babel.config.js
1 | module.exports = { |
示例:
learn_babel/babel.config.js
1 | module.exports = { |
执行顺序
- plugins 总是先于 presets 执行
- 多个 plugins 之间按照顺序依次执行
- 多个 presets 之间按照逆序依次执行
配置
plugins 和 presets 都可以通过将名称和配置对象封装在数组里的方式进行配置。
示例:
learn_babel/babel.config.js
1 | module.exports = { |
参考资料
本文作者: jsweibo
本文链接: https://jsweibo.github.io/2019/08/04/babel%E9%85%8D%E7%BD%AE%E4%B8%AD%E7%9A%84plugins%E5%B1%9E%E6%80%A7/
本文对你有帮助?请支持我
- 本文链接: https://jsweibo.github.io/2019/08/04/babel%E9%85%8D%E7%BD%AE%E4%B8%AD%E7%9A%84plugins%E5%B1%9E%E6%80%A7/
- 版权声明: 除非另有说明,否则本网站上的内容根据署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0) 进行许可。