一篇文章,教你学会Vue CLI 插件开发(2)

<template> <section> <h1>Click on 'Count' button to count your clicks</h1> <button v-stream:click="count$">Count clicks</button> <button @click="clearCounter">Clear counter</button> <p>{{result$}}</p> </section> </template> <script> import { filter, bufferWhen, debounceTime, map, startWith, } from 'rxjs/operators'; export default { domStreams: ['count$'], subscriptions() { return { result$: this.count$.pipe( filter(event => !!event), bufferWhen(() => this.count$.pipe(debounceTime(400))), map(clicks => clicks.length), startWith(0), ), }; }, methods: { clearCounter() { this.count$.next(null); }, }, }; </script>

<style> button { padding: 10px; font-size: 14px; margin-right: 10px; border-radius: 4px; outline: none; } </style>

不需要关心RxJS做了什么(反正我也没看懂),引就vans了。

此时我们需要改动generator/index.js,使它可以识别并写入文件夹。

api.render('./template', { ...options, });

当你调用 api.render('./template')时,generator将会使用 EJS渲染 ./template中的文件 (相对于 generator中的文件路径进行解析)

5.2 命令行提示安装

如果用户是个老手,不想拥有示例组件,该怎么办?在插件安装过程中,我们可以向prompts.js添加提示代码,以供用户在命令行选择:

module.exports = [ { name: `addExample`, type: 'confirm', message: '是否添加示例组件到项目components目录?', default: false, }, ];

询问用户是否要将示例组件添加到项目components目录下。默认是:false。

这时我们需要修改下generator/index.js:

if (options.addExample) { api.render('./template', { ...options, }); }

一篇文章,教你学会Vue CLI 插件开发

此时我们撤回安装,重新运行

yarn add --save-dev file://Users/hiro/练习/测试/vue-plugin
vue invoke vue-cli-plugin-rx

将会看到:

一篇文章,教你学会Vue CLI 插件开发

此时你查看项目components目录,将会发现多了示例组件文件

一篇文章,教你学会Vue CLI 插件开发

6.如何发布插件

来自官方文档

为了让一个 CLI 插件能够被其它开发者使用,你必须遵循 vue-cli-plugin-<name> 的命名约定将其发布到 npm 上。插件遵循命名约定之后就可以:

被 @vue/cli-service 发现;
被其他开发者搜索到;
通过 vue add <name>或 vue invoke <name> 安装下来。

你只需要在package.json中添加描述description,以及在插件项目根目录下创建logo.png。
接下来就是注册npmjs.com

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/3bc13e04c16532293edf23982c94077c.html