当前位置: 首页 > article >正文

webpack吐环境分析

需要解决的问题 扣取下来的webpack文件过大

image.png

解决思路 用ast将需要的代码扣下来 结果展示

image.png

实现步骤

  • 第一步:我们得知道需要哪些模块
    在入口处,增加模块记录
    image.png

  • 第二步,分析ast代码
    image.png
    通过分析发现,key 有三种值 分别为NumbericLiteral、StringLiteral、Identifier
    name可以编写如下代码

let find_function = {ObjectProperty(path) {let node = path.node;if (t.isFunctionExpression(node.value)) {if (t.isStringLiteral(node.key) && decode_function.includes(node.key.value)){let function_name = node.key.value;// console.log("function_name:" + function_name, number += 1)function_final_list.push(generator(node).code)}else if(t.isIdentifier(node.key)&& decode_function.includes(node.key.name)){let function_name = node.key.name;// console.log("function_name:" + function_name, number += 1)function_final_list.push(generator(node).code)}else if(t.isNumericLiteral(node.key)&& decode_function.includes(String(node.key.value))){let function_name = node.key.value;// console.log("function_name:" + function_name, number += 1)function_final_list.push(generator(node).code)}}}
}
  • 注意
    在isNumbericLiteral的方法,由于我在提取时做了String处理,所有后续的node.key.value 也需要做String处理
http://www.lryc.cn/news/2386836.html

相关文章:

  • Unity InputField 滑动滚轮 实现对文本的滚动
  • 机械设计插件
  • Monorepo 管理
  • RabbitMQ核心机制——延迟队列
  • 华为云Flexus+DeepSeek征文|Flexus云服务器Dify-LLM资源部署极致体验Agent
  • IP 网段
  • 芋道框架 - 接口设置匿名访问
  • 熔盐核裂变反应堆:第四代核能技术的重要突破
  • 鸿蒙OSUniApp 实现的日期选择器与时间选择器组件#三方框架 #Uniapp
  • Linux云计算训练营笔记day16(Linux周期性计划任务、Python)
  • 对比Redis与向量数据库(如Milvus)在AI中的应用
  • 【Elasticsearch入门到落地】13、DSL查询详解:分类、语法与实战场景
  • [欠拟合过拟合]机器学习-part10
  • 【windwos】文本编辑器Notepad++ 替代品Notepad--
  • Linux基本指令篇 —— clear指令
  • Anaconda 的基础教程,从入门到精通
  • 阿里云DDoS防护:万一被“黑”了,如何更换IP地址?
  • 机器学习笔记【Week2】
  • 饭卡管理系统(接口文档)
  • 【小白量化智能体】应用2:编写通达信绘图指标及生成Python绘图程序
  • C++23 std::start_lifetime_as:用于隐式生存期类型的显式生存期管理函数 (P2590R2)
  • 总结:进程和线程的联系和区别
  • Innodb底层原理与Mysql日志机制深入刨析
  • JMeter-SSE响应数据自动化
  • 泛型(1)
  • esp8266 点灯科技远程控制继电器
  • MMA: Multi-Modal Adapter for Vision-Language Models论文解读
  • Java中Map集合的遍历方式详解
  • 使用 Cannonballs 进行实用导体粗糙度建模
  • Spring Boot 注解 @ConditionalOnMissingBean是什么