位置: 编程技术 - 正文

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如何配置环境变量)

  • 差额征税如何开票备注内容应该怎么调
  • 差额税征收标准
  • 个人缴纳职业年金是什么意思
  • 水利基金申报表减除项填什么
  • 广告公司开票能开劳务费吗
  • 应付账款现金流量表指定
  • 受托开发软件产品免征增值税
  • 自建生产用机器设备领用本企业生产的产品
  • 收到货物记账凭证
  • 委托收款被拒绝后要怎么做
  • 以非现金资产清偿债务的会计处理
  • 赠送的固定资产需要计提折旧吗?
  • 税务局代开票流程是怎样的?
  • 小规模纳税人超过500万可以不转一般纳税人吗
  • 劳务派遣差额征税税率是多少
  • 旅游业开票问题总结二
  • 收据能不能做账
  • 土地租赁协议和合同有什么区别
  • 企业已确认销售收入的售出商品发生销售折让,且不属于
  • 销售收入大于纳税申报销售收入
  • 收到几分钱的认证费怎么做账
  • 利润分配财务处理
  • 云下载并重新安装
  • 如何批量更改多个excel内容
  • 企业所得税避税的方法
  • php利用云片网实现短信验证码功能的示例代码
  • 什么叫做材料成型工艺
  • 增值税最高开票限额审批时限
  • oracle win10
  • 应付职工薪酬负数风险
  • php结果以什么形式返回
  • 税负太高会预警吗
  • php判断是否连接数据库
  • download github
  • 企业开负数发票退货后怎么处理?
  • 专项应付款能转出来吗
  • 纳税人在工作
  • 营改增之后还有营业税金及附加吗
  • phpcms v9网页禁止复制
  • 有限责任公司分类
  • 一般纳税人简易征收最新政策
  • 红字发票与作废发票验旧
  • 如何在sql server中已有数据库进行修改
  • mysql@变量
  • 现金流量表的主要项目
  • 出口退税指的是什么意思
  • 安装防伪税控系统的方法
  • 车辆按揭贷款需要什么
  • 子公司与母公司承担连带责任
  • 公司法人借款给公司用责任承担
  • 生产性生物资产账务处理
  • 美国支票上的收款人地址不对怎么办
  • 免抵税额和免抵退税额一样吗
  • 工业企业营业税率
  • 商业企业的会计科目设置
  • 大白菜u盘备份win10教程
  • windoes版本
  • xp简单实用的网络连接
  • ubuntu unity8
  • macbook怎么隐藏
  • 字符集 linux
  • 自动登录xp系统怎么办
  • virtualbox怎么打开虚拟机
  • windows操作大全
  • win10系统如何删除用户账户
  • 用git打更新包的代码
  • 调出下拉菜单
  • jquery实现(textarea)placeholder自动换行
  • android EditText 需要输入文本时调不出来软键盘 解决方案(亲测有效)
  • python该怎么用
  • jquery动态生成div
  • JQuery datepicker 用法详解
  • unity3d快速入门
  • 安卓回调接口怎么写
  • 财政云操作视频
  • 成品油消费税税目
  • 企业代扣代缴个税
  • ipo上市要注意什么
  • 北京买新车购置税怎么算
  • 所有企业都要做应急预案吗
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设