从一个webpack loader中学习

编程入门 行业动态 更新时间:2024-10-27 21:16:14

从一个<a href=https://www.elefans.com/category/jswz/34/1771371.html style=webpack loader中学习"/>

从一个webpack loader中学习

chalk:给终端输出加一些自定义的样式
loader-utils:webpack的loader配置中会通过options传入一些用户自定义参数,就可以通过该包提供的getoptions()获取

node-fetch:Node.js的模块,用于从远程服务器获取数据
关于babel,它是JS的编译器,主要用于将js转译为浏览器可以执行的代码,兼容各种浏览器等,最常见的就是将ES6转译为ES5(浏览器只能识别并执行es5的代码)

借鉴文章
Babel 编译代码的过程可分为三个阶段:解析(parsing)(@babel/parser)、转换(transforming)(@babel/parser)、生成(generating)(@babel/parser)

  1. @babel/traverse:用来自动遍历抽象语法树(AST)的工具
traverse(ast, {// 对语法树中特定的节点进行操作VariableDeclarator(path: NodePath) {// 指向当前 AST 节点const node = path.node;const { id, init } = node;if (id.name === '$$$' && datas && typeof datas === 'object') {const { properties } = init;const newProps = genObjectProperties(datas);init.properties = properties.concat(newProps);}}} as Visitor);
  1. @babel/parser:将源代码解析成AST
  2. @babel/generator:将AST 解码成js代码
函数返回值类型为t.ObjectProperty,什么意思?
function genObjectProperties(svgIcons: ISvgIcons): t.ObjectProperty[] {return Object.keys(svgIcons || {}).map((item) => {return t.objectProperty(t.stringLiteral(item), // 创建一个字符串字面量节点genIconProperties(svgIcons[item]));});
}

更多推荐

从一个webpack loader中学习

本文发布于:2023-12-04 10:34:05,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1660628.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:webpack   loader

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!