北京城乡建设学校网站,免费国外ip地址,哪个网站有介绍拿到家做的手工活,天河商城网站建设chalk#xff1a;给终端输出加一些自定义的样式
loader-utils#xff1a;webpack的loader配置中会通过options传入一些用户自定义参数#xff0c;就可以通过该包提供的getoptions()获取 node-fetch#xff1a;Node.js的模块#xff0c;用于从远程服务器获取数据
关于bab…chalk给终端输出加一些自定义的样式
loader-utilswebpack的loader配置中会通过options传入一些用户自定义参数就可以通过该包提供的getoptions()获取 node-fetchNode.js的模块用于从远程服务器获取数据
关于babel它是JS的编译器主要用于将js转译为浏览器可以执行的代码兼容各种浏览器等最常见的就是将ES6转译为ES5(浏览器只能识别并执行es5的代码)
借鉴文章 Babel 编译代码的过程可分为三个阶段解析parsing(babel/parser)、转换transforming(babel/parser)、生成generating(babel/parser)
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);babel/parser将源代码解析成ASTbabel/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]));});
}