Closed themoonbear closed 2 years ago
可以,在 tsrpc.config.ts
中配置多个 proto
项即可。
每个 proto
项还可以配置 ignore
属性来忽略指定协议。
可以,在
tsrpc.config.ts
中配置多个proto
项即可。 每个proto
项还可以配置ignore
属性来忽略指定协议。
如果是分开配置proto文件的话,是不是就生成多个服务文件,这样一个server是不是就要针对不同的服务文件起多个服务?如果使用ignore的配置是不是服务文件里还是包含这个协议的,但执行同步的时候会忽略掉这个文件?另外配ignore是填文件名还是协议名?文件名的话需要填写路径吗?可以在案例中加个example吗?
@themoonbear 参考:
export default <TsrpcConfig>{
// Generate ServiceProto
proto: [
{
ptlDir: 'src/shared/protocols', // Protocol dir
output: 'src/shared/protocols/serviceProto.ts', // Path for generated ServiceProto
apiDir: 'src/api', // API dir
docDir: 'docs', // API documents dir
ptlTemplate: { baseFile: 'src/shared/protocols/base.ts' }
},
{
ptlDir: 'src/shared/protocols', // Protocol dir
output: 'src/shared/protocols/serviceProto_partial.ts', // Path for generated ServiceProto
ignore: ['src/shared/protocols/admin/**'],
// 填写改字段,确保子 proto 与总 proto 兼容
compatible: 'src/shared/protocols/serviceProto.ts'
},
],
// ...
}
serviceProto.ts
主协议serviceProto_partial.ts
@themoonbear 参考:
export default <TsrpcConfig>{ // Generate ServiceProto proto: [ { ptlDir: 'src/shared/protocols', // Protocol dir output: 'src/shared/protocols/serviceProto.ts', // Path for generated ServiceProto apiDir: 'src/api', // API dir docDir: 'docs', // API documents dir ptlTemplate: { baseFile: 'src/shared/protocols/base.ts' } }, { ptlDir: 'src/shared/protocols', // Protocol dir output: 'src/shared/protocols/serviceProto_partial.ts', // Path for generated ServiceProto ignore: ['src/shared/protocols/admin/**'], // 填写改字段,确保子 proto 与总 proto 兼容 compatible: 'src/shared/protocols/serviceProto.ts' }, ], // ... }
- 只需要一个 Server,实现
serviceProto.ts
主协议- 给前端可以共享
serviceProto_partial.ts
协议OK了,在同步的时候,我用的拷贝方式,忽略掉的文件还是会拷贝过去,能否在同步的时候也过滤掉忽略的文件?
能否在同步的时候也过滤掉忽略的文件?
目前不行,需要后续版本优化,给 'copy'
类型的 'sync'
也增加一个 'ignore'
选项。
不过这块也要看看有没有好建议?有没有更优雅的 API 设计方式
能否在同步的时候也过滤掉忽略的文件?
目前不行,需要后续版本优化,给
'copy'
类型的'sync'
也增加一个'ignore'
选项。 不过这块也要看看有没有好建议?有没有更优雅的 API 设计方式
同步的方式,软链感觉比较适合个人开发,不太适用团队开发,还有dev的配置目前只支持一个入口,如果多个服务的话,就用不了,只能像案例里那样用package来处理
dev 可以通过 tsrpc-cli dev --entry xxx.ts
来改变入口
dev 可以通过
tsrpc-cli dev --entry xxx.ts
来改变入口
是的,我说就是目前用这种方式来处理多个服务,但如果在tsrpc的配置文件里,对dev这个分段做多入口处理会好些,不然这个分段在多服务的时候就用不上了。
也可以拆分为多个 config 文件:tsrpc-cli dev --config xxx.config.ts
准确的说应该是服务协议文件是否可以多个,不把所有协议编到一个文件里