问题描述
先说下问题的现象,在进行码良本地化时,使用gods-pen创建组件时,进行到组件标签选择时,没有选项。
问题猜想
gods-pen是放在npm上的,应该没有改变,不会出现问题,所以组件标签可能是存在数据库中,码良初始化脚本缺少初始数据。
以上猜想可以通过两种方式验证:
-
首先从数据库中查看是否有标签类表,尝试添加数据,重现创建组件,看是否有组件标签列表。
-
从gods-pen脚手架源码入手,查看组件标签数据源来自哪里。下面主要通过查看gods-pen脚手架源码的方式来解决此问题。
通过查看源码方式处理问题
创建一个临时文件夹用于处理这个问题,temp,使用vscode打开temp文件夹,执行下面的命令安装gods-pen脚手架工具。
npm install gods-pen-cli
进入node_modules查看gods-pen源码,查看create脚本。
在文件中搜索组件标签
,可以看到数据来源为tags
tags
数据来自于initdata()
方法,进入initdata()
方法查看数据如何获取。
查看getTags()
方法可以看到数据是从/editor/tags/list接口获取,接下来我们去查看host地址是什么
host是从配置中获取注册地址registry
,本地配置过registry
为本地化地址,所以数据目前应该是从本地获取,数据库中应该是缺少初始数据。继续跟踪。
可以看到,默认或是配置报错情况,数据是从https://godspen.ymm56.com获取,使用postman尝试进行数据获取。
验证成功,数据是来自后端接口,接下来只需要编写脚本,把数据添加到数据库中或是在系统中直接进行维护。找到tags相关表。
编写脚本执行。
INSERT INTO `godspen_db`.`tb_tags` (`name`, `category_id`, `status`, `create_time`, `update_time`, `usenumber`) VALUES ('文本', '3', '1', NOW(), NOW(), '1');
INSERT INTO `godspen_db`.`tb_tags` (`name`, `category_id`, `status`, `create_time`, `update_time`, `usenumber`) VALUES ('图片', '3', '1', NOW(), NOW(), '1');
INSERT INTO `godspen_db`.`tb_tags` (`name`, `category_id`, `status`, `create_time`, `update_time`, `usenumber`) VALUES ('列表', '3', '1', NOW(), NOW(), '1');
INSERT INTO `godspen_db`.`tb_tags` (`name`, `category_id`, `status`, `create_time`, `update_time`, `usenumber`) VALUES ('画廊', '3', '1', NOW(), NOW(), '1');
INSERT INTO `godspen_db`.`tb_tags` (`name`, `category_id`, `status`, `create_time`, `update_time`, `usenumber`) VALUES ('形状', '3', '1', NOW(), NOW(), '1');
INSERT INTO `godspen_db`.`tb_tags` (`name`, `category_id`, `status`, `create_time`, `update_time`, `usenumber`) VALUES ('banner', '3', '1', NOW(), NOW(), '1');
INSERT INTO `godspen_db`.`tb_tags` (`name`, `category_id`, `status`, `create_time`, `update_time`, `usenumber`) VALUES ('标题', '3', '1', NOW(), NOW(), '1');
INSERT INTO `godspen_db`.`tb_tags` (`name`, `category_id`, `status`, `create_time`, `update_time`, `usenumber`) VALUES ('矢量图', '3', '1', NOW(), NOW(), '1');
INSERT INTO `godspen_db`.`tb_tags` (`name`, `category_id`, `status`, `create_time`, `update_time`, `usenumber`) VALUES ('其他', '3', '1', NOW(), NOW(), '1');
标签:tags,gods,create,码良,pen,godspen,time,NOW
From: https://www.cnblogs.com/Crazy_Joker/p/17406966.html