使用open-api-generator gradle插件生成NPM软件包

是否可以使用用于gradle的开放api生成器插件来生成npm软件包?

我正在生成.ts模型类,并且看到typescript-angular生成器具有一些属性,例如npmName,npmVersion等,这使我认为也可以使用该插件创建npm包。

到目前为止,我还没有设法生成它或在某处找到一个精品。

这是我尝试过的配置示例

task buildTypeScriptClient(type: org.openapitools.generator.gradle.plugin.tasks.Generatetask) {
        generatorName = "typescript-angular"
        inputSpec = "$rootDir/${project.name}/api-definition/${apiDefinitionFile}".toString()
        outputDir = "$buildDir".toString()
        validateSpec = false
        modelPackage = "model.${project.name}-service-client"

        configOptions = [
                ngVersion    : "8.0.0",npmName      : "some-typescript-client",npmVersion   : "1.0.0",npmRepository: "some repo",snapshot     : "false",supportsES6  : "true"
        ]

        systemProperties = [
                models: "" //generates all model classes
        ]
    }
sam_xiaosa 回答:使用open-api-generator gradle插件生成NPM软件包

最后,这是我使用的配置:

task buildTypeScriptClient(type: org.openapitools.generator.gradle.plugin.tasks.GenerateTask) {
        generatorName = "typescript-angular"
        inputSpec = "$rootDir/${project.name}/api-definition/${apiDefinitionFile}".toString()
        outputDir = "$buildDir".toString()
        validateSpec = Boolean.valueOf(project.validateOpenApiFile)
        supportingFilesConstrainedTo = ["package.json"]
        modelPackage = "${project.name}-client/model"
        templateDir = "$rootDir/${project.name}/template/"

        configOptions = [
                ngVersion    : "8.0.0",npmName      : "${project.name}-client",npmVersion   : "${project.version}",npmRepository: project.NEXUS_UPLOAD_URL
        ]

        additionalProperties = [
                backendService: "${project.name}".toString()
        ]

        systemProperties = [
                models    : "",modelDocs : "false",modelTests: "false",apis      : "false"
        ]
    }

我正在使用package.mustache模板来生成这种形式的自定义package.json:

{
    "name": "{{npmName}}","version": "{{npmVersion}}","description": "This package contains the DTO classes (generated by open api generator) used for the REST interface of {{backendService}}","private": false,"license": "unlicensed","repository": {
        "type": "git","url": "https://git-repo.com/{{backendService}}"
    },"scripts": {
        "package": "npm pack"
    },"files": [
        "{{modelPackage}}/*"
    ]
}

我还使用了自定义的npm gradle插件,该插件建立在com.moowork.gradle:gradle-node-plugin:1.3.1的基础上,通过该插件,我将客户端打包为zip文件并将其发布到远程存储库。

本文链接:https://www.f2er.com/3118529.html

大家都在问