Closed d-w-x closed 1 year ago
IPluginConfig 中 prefix、 propName 这两个参数是什么含义,我在文档中没有看到相关说明?
ctx.getConfig<[ConfigType]>('picBed.[uploaderName]') 中,获取的配置值在设置了默认值后仍然可能为空。
例如指定了:
const pluginConfig: IPluginConfig[] = [
{
name: 'fileName',
type: 'input',
default: userConfig.fileName || '/pictures/{year}/{month}/{day}_{hour}_{minute}_{second}_{fileName}',
required: false,
message: 'upload file name and path',
alias: '文件名及其路径'
}
]
如果用户配置的值为空,那么 ctx.getConfig<[ConfigType]>('picBed.[uploaderName]').fileName
中取到的值是空而不是 '/pictures/{year}/{month}/{day}_{hour}_{minute}_{second}_{fileName}'
,我认为这个不符合预期?
影响版本: windows GUI 2.3.1 CLI 1.5.0
prefix只会在cli命令中出现,在cli配置里会使用到。你如果使用了prefix,在命令行配置你的插件的时候,每个配置项前面会出现prefix的内容。 [propName: string]: any 意思是还可以自行添加一些属性名为string类型的,值为any类型的值。并不是要声明一个叫做 propName 的属性。参考
符合预期,pluginConfig 需要第一次用户保存并落地才能生效。
getConfig的时候只会从本地配置中读取,而不会从pluginConfig中读取。
prefix的用法,可以参考picgo-core内置的一些图床的使用方法,你可以在命令行中配置一遍就能理解作用。简单来说, alias
是为了在 GUI 中展示可变的属性名,而 prefix
是为了在命令行中展示可变的属性名。命令行展示主要可以参考 Inquirer.js 的配置。
https://github.com/PicGo/PicGo-Core/blob/dev/src/plugins/uploader/tcyun.ts#L207
后续会更新到文档中,谢谢反馈。
实际上个人觉得 alias
和 prefix
可能有些冗余,正是因为看已有的图床发现 prefix
一般为 [缺失]或者 [和 alias
值相同],故而特意来咨询。
所以 pluginConfig 主要是影响用户没有初始值的时候保存进去的内容;后面读取配置还是要自己处理空值,如果不允许空值的话。
可以这么理解吧?
注意到升级到 1.5.0 后,新插件应该是不能在 < 1.5.0 版本使用的,因此是否可能可以考虑允许用户在安装插件的时候指定版本,这样他们在使用旧版本软件的时候可以根据插件的兼容性说明(如果插件提供)来安装历史插件版本?
注意到升级到 1.5.0 后,新插件应该是不能在 < 1.5.0 版本使用的,因此是否可能可以考虑允许用户在安装插件的时候指定版本,这样他们在使用旧版本软件的时候可以根据插件的兼容性说明(如果插件提供)来安装历史插件版本?
GUI版本后续会更新一个功能,安装插件的时候可以选择安装某个版本的插件。
对于用户来说,如果是旧版的用户,那么需要手动到插件目录下安装指定的插件版本。
后续会在插件的package.json中,申明一个字段用于标识最低支持的PicGo版本,这样在安装前就能知道能否安装。
实际上个人觉得
alias
和prefix
可能有些冗余,正是因为看已有的图床发现prefix
一般为 [缺失]或者 [和alias
值相同],故而特意来咨询。
这是历史原因导致的。当然后续也可能直接做breakingchange,把 alias
废弃。因为 prefix
是 Inquirer.js 的配置,PicGo 的 CLI 需要它的支持,同时也比较推荐使用它的配置项,这样后续做迁移等也会比较方便。 而 alias
只是我自己拍脑门想的一个属性,用于对 GUI 界面做优化而处理的。
嗯嗯,我这边适配好了应该,其他基本没问题了,麻烦了。
所以 pluginConfig 主要是影响用户没有初始值的时候保存进去的内容;后面读取配置还是要自己处理空值,如果不允许空值的话。
可以这么理解吧?
是的,pluginConfig 如果有默认值,那么用户在第一次打开配置界面的时候就能看到默认值,从而点击保存的时候就能将默认值落地。但是直接读取的时候始终是从落地的配置文件中读取的,不会再调一次插件。毕竟有可能存在一些配置不在插件中或者插件不存在的情况。
嗯嗯,我这边适配好了应该,其他基本没问题了,麻烦了。
非常感谢你为 PicGo 生态做的贡献!
没事,也非常感谢你开发的软件以及及时回复~
你好,我现在试图将 https://github.com/d-w-x/picgo-plugin-gitlab-files 升级到最新版本。目前在接口中可能会遇到问题,希望能得到您的回复。