位置: 编程技术 - 正文

node.js中watch机制详解(nodejs worker)

编辑:rootadmin

推荐整理分享node.js中watch机制详解(nodejs worker),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:node.js gui,node.js gui,nodejs worker,nodejs watch,nodejs watch,node.js in action,node watch,node-watch,内容如对您有帮助,希望把文章链接给更多的朋友!

几乎所有构建系统都选择使用watch机制来解决开发过程中需要反复生成构建后文件的问题,但在watch机制下,长期以来我们必须忍受修改完代码,保存完代码必须喝口茶才能刷新看看效果的问题。在这里我们尝试探讨为什么watch不是银弹,并尝试寻找一种更好的方案来解决这个问题。

watch基于的事实

当一个文件修改,我们能知道其修改可能导致的文件修改,那么重新构建这些文件即可。

通常对于文件A,构建成文件B这种场景,这种对应关系是极好确定的。但现实场景下,构建过程往往不是那么简单。例如:

文件A + 文件B(被文件A引用) -> 文件C在这种场景下,文件B的修改,可能难以定位哪些文件需要重新跑构建任务,因为可能有很多文件引用了文件B。

除非我们建立一个依赖树,并在每次文件更新的情况下更新依赖树,并根据新的依赖树触发文件构建。但这对每一个插件都需要自行实现这个机制,并且极易出错。故实际上watch机制仅仅是重跑了整个task。所以当项目越来越大的时候,watch机制将越来越慢(因为越来越多文件需要重新跑整个过程,即使通过缓存减少了整个过程所需的耗时)。

node.js中watch机制详解(nodejs worker)

解决方案

src直接可用

AlloyTeam & @ldjking,简单来说直接让src直接可跑,把构建任务放置在浏览器端,甚至根本不构建,既可做到及时修改及时刷新,在开发过程中减少了时间消耗。线下构建仅仅负责性能优化上的问题,不负责开发效率。典型代表有LESS、React等。但也有一些问题:

难以在浏览器端实现优雅的构建方式,难以提供强大的功能进一步减少开发成本,大部分只能采用类似<style type="text/less"></style>的方式引入脚本。开发模式下的执行顺序不一定和实际场景相同,可能导致隐形bug出现,例如实现一个HTML inline由于开发模式下inline是异步的,而发布模式下inline时同步的,产生莫名其妙的bug。浏览器编译性能堪忧,例如js版的sass,编译速度几乎无法忍受。需要维护线上、线下两套构建系统,增加了工具开发成本。本地服务器动态构建

一个事实是:在合理的规范支持下,我们可以从浏览器请求的文件,回溯到该文件构建过程中的入口文件。这样我们就可以动态触发一次构建过程。

通过在本地建立一个服务器,让服务器捕获请求后,在服务器中动态构建。只要回溯到入口文件,我们便能将入口文件丢进gulp插件组成的管道中,则输出便是浏览器需要的文件。

这样我们就能解决上面的所有问题。

nodejs开发环境配置与使用 先说下nodejs这个哦,有人以为它是一种语言,其实不是,它是一个平台,一个建立在google的V8引擎上的js运行平台,就是解析js,并提供自己的一些API给

nodejs 提示‘xxx’ 不是内部或外部命令解决方法 一般出现这样的问题原因是npm安装出现了问题,全局模块目录没有被添加到系统环境变量。Windows用户检查下npm的目录是否加入了系统变量PATH中,如果不

node.js使用npm 安装插件时提示install Error: ENOENT报错的解决方法 在使用npminstall安装扩展插件时,系统提示npminstallError:ENOENT,stat'C:Users用户名AppDataRoamingnpm'。以前都是很顺利的安装过程,没出现这种情况。我这里的解

标签: nodejs worker

本文链接地址:https://www.jiuchutong.com/biancheng/374239.html 转载请保留说明!

上一篇:Node.js中HTTP模块与事件模块详解

下一篇:nodejs开发环境配置与使用(nodejs如何配置环境变量)

  • 公司法人和经理承担责任一样吗
  • 税务局代个人开发票
  • 对公账户的钱都是国有资产吗
  • 小规模申请专票的申请理由怎么写
  • 做实验用的东西哪里可以买到
  • 增值税专用发票电子版
  • 资本公积 转增
  • 小微企业增值税起征点是多少
  • 购物返现活动文案
  • 公司注销公告怎么发布
  • 资产的名义已使用年限与实际已使用年限的区别与联系
  • 租赁厂房发生的改造装修费用
  • 汇算清缴残保金填哪里
  • 固定资产的初始成本包括
  • 软件生产企业
  • 农民工的工资是当月工作过月几号发工资政府有没有规定
  • 过了征期还能报税吗
  • 金税盘是固定资产还是无形资产
  • 一般纳税人能否享受残保金优惠
  • 质量罚款入什么科目
  • 个体户经营所得怎么申报
  • 股票股利为什么不影响所有者权益
  • 去年的税金没有计提
  • 固定资产残值率一般是多少
  • 收到镇级财政扶持怎么办
  • 金融衍生工具的特点不包括
  • 医保退休必须交多少年辽阳
  • 未代扣代缴个税的滞纳金与处罚规定
  • 电梯管理费属什么类别
  • 高新技术企业研发人员学历要求
  • 研发费加计扣除做账务处理吗
  • win10专业版怎么改成家庭版
  • 工业增加值计算公式是什么
  • 固定资产清理是什么项目
  • centos apache配置文件
  • php_sapi_name
  • 挂靠借用资质账务处理?
  • 编制合并报表的三种理论
  • 其他存货包括哪些内容
  • wifi万能钥匙密码王
  • php之间传递数据
  • 纳税人超过应缴纳税额缴纳的税款
  • 增值税缓息是什么意思
  • 房租违约金怎么开发票
  • 物流公司交保险是骗局吗
  • 苏尼亚尼
  • vuex存储用户信息
  • 树莓派能干什么
  • 教育费附加免税需要计提吗?
  • 印花税的缴税对象是
  • 即征即退进项税怎么划分合算
  • sobel算子 opencv
  • 投稿网址打不开
  • 应付职工薪酬中的职工是指
  • 月底结转增值税凭证
  • 认证发票抵扣有留抵税怎么做分录
  • 为什么一般纳税人税率高
  • 预缴增值税销售额是含税还是不含税的开票金额
  • 购买劳务费会计分录
  • 银行手续费发票未到怎样做账
  • 员工代垫费用能用公户转吗
  • 科目汇总表一张几行啊
  • 日记账对方科目代表什么意思
  • 厂房和设备折旧计入什么费用
  • 账簿设置方法
  • mysql中字符串函数
  • Windows 9 Storage Sense储存功能更多图像
  • xp电脑开机进入bios怎么办
  • Ubuntu上安装jdk
  • centos直接安装
  • firefox干啥的
  • CentOS系统中与时间的相关命令详解
  • SwiftBTN.exe - SwiftBTN是什么进程 有啥作用
  • linux xim
  • js中单例模式
  • js函数重名
  • Python IDE PyCharm的基本快捷键和配置简介
  • 税控发票开票软件(金税盘版)事件代码768功能代码5?
  • 广西城建投资集团官网
  • 开票系统ukey抄报税
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设