加入收藏 | 设为首页 | 会员中心 | 我要投稿 盐城站长网 (https://www.0515zz.cn/)- 运维、云管理、管理运维、智能数字人、AI硬件!
当前位置: 首页 > 站长资讯 > 外闻 > 正文

无人机配送价值凸显

发布时间:2021-02-12 12:44:39 所属栏目:外闻 来源:互联网
导读:这两个流程的 pluginAPI是不一样的。 安装流程:@vue/cli/lib/GeneratorAPI [15] 运行流程:@vue/cli-service/lib/PluginAPI [16] 从三要素来总结: 1)安装流程 pluginCore: @vue/cli [17]通过命令行参数获得插件包名,然后安装插件的npm包,并执行 prompt

这两个流程的 pluginAPI是不一样的。

  •  安装流程:@vue/cli/lib/GeneratorAPI [15]
  •  运行流程:@vue/cli-service/lib/PluginAPI [16]

从三要素来总结:

1)安装流程

  •  pluginCore:@vue/cli [17]通过命令行参数获得插件包名,然后安装插件的npm包,并执行prompts.js 获得用户安装选项结果,然后,使用选项结果和generator.js作为参数构造出generator,并在调用generator.generate中执行generator.js函数;
  •  pluginAPI:GeneratorAPI [18],提供了源码修改、npm包管理、模版文件生成等功能;
  •  plugin:prompts.js和generator.js组成,解决某种能力植入项目时,要处理的依赖。
  •  详细代码:_@vue/cli/lib/Generator.js [113]_
  •  第五步:将插件的参数添加到vue.config.js文件中。

第二种 运行流程

插件运行流程是由@vue/cli-service [14]这个插件系统定义的,这里的调用插件有两种:

  •  第一种 内置插件@vue/cli-service的命令和配置相关,将系插件统功能拆分出多个内置插件,在插件系统中默认调用);
  •  第二种 项目插件,package.json 中定义的npm包名符合插件命名规范)。

详情可以去看Vue Cli 插件开发指南 [9]

我们把Vue CLI的插件执行分成两种情况:

  •  第一种:插件未安装,插件被添加的时候调用(prompts.js + generator.js)
  •  第二种:插件已安装,插件系统启动时被执行(index.js)

第一种 安装流程

相比Babel的手动安装添加插件方式,Vue CLI的插件系统提供命令行的安装方式就显得很方便了。我们看看Vue Cli插件系统时怎么实现一行命令添加插件的功能。

安装流程的执行思路如下:

  •  第一步:从命令行参数解析出插件名,使用npm(yarn)install vue-cli-plugin-xxx 安装插件,源码位置:@vue/cli/lib/add.js [10]
  •  第二步:require('vue-cli-plugin-xxx/prompts'),并获取用户安装是选项结果pluginOptions,源码位置:@vue/cli/lib/invoke.js [11]   

visitor的对象中的值变成了 Array<function(nodePath)>

  •  第四步,AST遍历时,每个节点根据 NodeType,来获取 visitor[NodeType],并依次执行。

从三要素来总结:

  •  pluginCore:插件加载并整合(即vistor合并),AST遍历期间是调用查找vistor[NodeType]并依次调用;
  •  pluginAPI:nodePath,提供不同类型节点的接口来转换AST节点;
  •  plugin:visitor[NodeType]=function(nodepath)。

2.3 vue-cli的插件化架构

Vue CLI 是一个基于 Vue.js 进行快速开发的完整系统。CLI插件是向你的 Vue 项目提供可选功能的 npm 包,例如 Babel/TypeScript 转译、ESLint 集成、单元测试和 end-to-end 测试等。Vue CLI 插件的名字以 @vue/cli-plugin- (内建插件) 或 vue-cli-plugin- (社区插件) 开头,非常容易使用。下面,我们将会解析cli插件的定义、执行、安装等过程。

插件定义

插件必须是vue-cli-plugin-命名的npm包,并且目录结构也是要严格遵循文件命名来定义。

注意:@vue/cli-service [6],会通过 项目根目录下package.json中dependencies和devDependencies中定义的 npm包中符合插件命名规范的 npm包作为项目的插件。


(编辑:盐城站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读