插件需要 export 一个函数,函数会接收到两个参数,第一个是 build-scripts 提供的 pluginAPI,第二个是用户传给插件的自定义参数,如下: module.exports = (pluginAPI, options) => { const { context, log, onHook } = pluginAPI; }; pluginAPI
初始化插件 你可以通过 create-umi 直接创建一个 umi 插件的脚手架: $ yarn create umi --plugin 在 umi 中,插件实际上就是一个 JS 模块,你需要定义一个插件的初始化方法并默认导出。如下示例: export default (api, opts) => { // your plugin code here }; 需要注意的是,如果你的插件需要发
开发者功能允许以许多不同的方式扩展和增强 Chart.js。 Chart.js 支持所有支持 canvas 的浏览器。 所有现代和主流移动浏览器都支持浏览器对 canvas 元素的支持。CanIUse 感谢BrowserStack让我们的团队在数千个浏览器上进行测试。 版本 2 具有与早期版本完全不同的 API。 大多数早期的版本选项具有当前的等价物或者相同。 请使用chartjs.org 上提供
Termux 支持的开发环境很强,可以完美的运行 C、Python、Java、PHP、Ruby等开发环境,建议读者朋友们选择自己需要的开发环境折腾。 编辑器 写代码前总得折腾一下编辑器,毕竟磨刀不误砍柴工嘛。Termux 支持多种编辑器,完全可以满足日常使用需求。 Emacs 据说Emacs是神的编辑器,国光我这种小菜鸡还不会使用哎,但是 Termux 官方已经封装好了 Emacs了,我们安装起来
如果您打算使用SOP做开放平台开发,流程大致如下: cd到/SOP/sop-common目录,执行命令mvn clean deploy,把jar上传到maven私服,如果没有maven私服,可以打包到本地mvn clean install 打包sop-gateway(网关)、sop-admin(后台管理)、sop-website(文档),部署到服务器上 以上服务是固定的,启动一次即可,后续不用做改
插件开发 消费器插件 继承AbstractDataConsumer类 通过spring.factories发布: cn.vbill.middleware.porter.core.task.consumer.DataConsumer=xxx 通过配置文件生效: porter.task[index].consumer.consumerName=pluginName EventConverte
安装YApi 1.创建工程目录 mkdir yapi && cd yapi git clone https://github.com/YMFE/yapi.git vendors --depth=1 # 或者下载 zip 包解压到 vendors 目录 2.修改配置 cp vendors/config_example.json ./config.json # 复制完成后请修改相关配置 vi ./c
运行开发服务器 npm install npm install -g ykit #依赖 ykit npm run dev #启动开发服务器 加载插件 在config.json plugins配置项,加入 demo 插件, { "port": "3000", "db": { "servername": "127.0.0.1", "DATABASE": "yapi" }
一个 web 项目的前、后端开发方式有很多种,每个方式都有适应的场景,case by case,无所谓先进与否。但无论采用哪种方式,都要进行分离,可以是分层上,也可以是分工上。 全栈框架开发 前、后端都依赖于同一个全栈式框架的开发方式,是为「全栈框架开发」。 后端工程师套页面 前端工程师只需在本地编写好静态页面,将静态资源文件上传到服务器或 CDN,接着后端工程师按照规则把代码「移植」到后端视图模
1 逻辑流程 方案1: 微信消息通过中转平台转发给小能服务器 小能消息直接发送到微信服务器,小能维护Token 方案2: 微信消息通过中转平台转发给小能服务器 小能服务器消息直接发送到中转平台,中转平台维护真实Token,小能维护由平台提供给小能的Token 注(1): 此处逻辑为可选逻辑,详情参见 【小程序深度对接->上报用户信息】 2 集成步骤 2.1 添加发起会话按钮 <button ope
1. 概述 如果百度用户访问第三方应用网页,则第三方应用可以通过网页授权机制,来获取百度用户基本信息,进而实现自身业务功能。 具体而言,百度帐号网页授权流程分为四步: 引导用户进入授权页面同意授权,获取code; 通过code换取网页授权access_token; 如果需要,开发者可以刷新网页授权access_token,避免过期; 通过网页授权access_token获取用户基本信息。 2. 引
门户首页 模板文件对应的是模板目录/portal/index.html,这个页面没有被控制器 assign任何变量,模板开发者完全可以用 portal:articles等其它模板标签制作此页面 文章列表 默认模板文件(可以增加更多) 默认模板文件对应的是模板目录/portal/list.html 控制器 assign 过的变量 $category这个变量是就是一个文章分类对象,可以当成数组直接用
ThinkCMF5遵循PSR-2命名规范和PSR-4自动加载规范及 ThinkPHP5的开发规范,并且注意如下规范: URL规范 除 api的url,其它 url 不能以 api/开头 模板 assign 变量: 命名小写+下划线 每个 assign变量必须有一个名称 $this->assign('post', $post); 表单 name 命名: 小写+下划线 Controller,Mode
ThinkCMF完全按ThinkPHP开发规范进行 开发前请详细阅读: http://www.kancloud.cn/manual/thinkphp/1687 ThinkCMF特别开发规范 应用后台控件器放在应用Controller目录中,最好不要存放在Admin/Controller下,保证应用模块独立 应用后台控件器命名以****adminController.class.php或者Admin
ThinkCMF遵循PSR-2命名规范和PSR-4自动加载规范及 ThinkPHP5.1的开发规范,并且注意如下规范: URL规范 除 api的url,其它 url 不能以 api/开头 模板 assign 变量: 命名小写+下划线 每个 assign变量必须有一个名称 $this->assign('post', $post); 表单 name 命名: 小写+下划线 Controller,Mod