当前位置: 首页 > 后端技术 > Node.js

原理图开发指南

时间:2023-04-03 23:40:32 Node.js

什么是概要原理图?这是对Angular中定义的引用。原理图是一种基于模板的代码生成器,支持复杂的逻辑。它是一组通过生成或修改代码来转换软件项目的说明。原理图被打包成集合并使用npm安装。https://angular.cn/guide/schematics所以比起狭义的脚手架,schematics也可以称为智能代码生成器一般唬人图的特点AtomicityAngular开发的schematic框架使用虚拟文件系统进行文件操作,所以任何对文件的处理不会立即体现在项目中,只有当所有操作都完成并且没有异常时,才会写入到代码中。通用性虽然是Angular开发的示意图,但是实现不局限于Angular,不局限于前端,甚至不局限于语言。只要是文件,就可以操作和测试。由于对文件的操作都在虚拟文件系统中,因此可以建立单元测试,确保每一个原理图的执行都符合预期。Interactivity通过定义JSONSchema来定义原理图的输入字段,在命令行中可以设置提示输入,支持输入,单选,多选,判断,版本控制等不同的输入方式,并不是所有的修改都是直接生效,并存储在虚拟文件系统中。Angular在其中实现了一个类似于git的简化系统。单个文件的修改(非覆盖)只会在提交时改变非主树。文件的修改只有合并后才会生效。可以通过branch再创建一个树函数模板生成,这是最传统的脚手架开发。只需要调用两个方法就可以实现文件操作。您可以在当前工作区中创建文件。,overwrite,rename,deletecreatecreatefilesintheworkspaceoverwriteoverwriteoverwriteexistingfilesintheworkspacerename重命名工作区文件,这里的路径是名称,所以重命名也可以用来移动文件delete删除工作区内置文件中的文件操作规则,更方便文件处理代码操作当项目中的文件有配套的语法分析工具时,可以对代码进行处理处理可以更精确一些,比如不同的类型,不同的变量名,不同的值,进行不同的修改。现有前端推荐.ts->typescript,.html->@angular/compiler,.json->jsonc-parser其他类型语言语法分析工具参考https://astexplorer.net/chain调用当前原理图调用其他原理图。通常,其他原理图可以处理并返回,为下一条规则提供处理后的文件。自动任务处理如果指定添加任务,则原理图文件修改完成并写入硬盘后,会自动执行当前内置的任务,包括初始化仓库,npm安装,执行其他原理图可用于的项目初始化。这也是最基本的,也是应用最广泛的。您只需要保存文件并执行它即可自动生成项目更新。对于项目中一些需要更新的代码(比如依赖更新导致的废弃),可以通过语言解析替换相关节点内容。通过其他代码,进行语法分析,获取元数据,生成相关逻辑。这里的元数据不是json格式的,所以需要通过语法分析从源码工厂得到一个猜测。通过复杂的规则和逻辑,把文件看成一个模块,根据输入的参数生成需要的文件。源码由原理图生成,可读性与普通开发者编写的一致,不会出现开发者的低级错误。源码作为生成品使用,不用担心泄露,因为真正的源码是原理图源码工厂,而不是生成的源码名称,解释了工作流采集的独特环境和原理图工作。初始化集合使用引擎创建和执行原理图引擎用于创建集合、原理图、SchematicContext、读取文件(模板)、转换参数等底层方法集合collection.json实例初始化原理图schematic。集合中的原理图实例调用规则处理传入的文件Tree。虚拟机文件树原理图的第一条规则(默认第一个执行),传入的Tree是当前工作空间,主要用来传入Rule来处理SchematicContext原理图上下文。当前原理图实例engineRule处理传入的Tree。返回的Tree会给出下一条Rule继续处理。Source类似于rxjs,Angular的示意图介绍了Source(源)和Rule(规则)Source相当于rxjs中的创建操作符,Rule相当于pipelinesymbolSource可以通过rule转换成Tree,然后提供给Rule进行处理。由于规则是处理传入的文件,所以Source的作用是限制文件原理图入口教程https://www.bilibili.com/video/BV13h411J7mU教程源码https://github.com/wszgrcy/原理图教程