【问题标题】:Why does openapi-generator not create a package.json with typescript-angular?为什么 openapi-generator 不使用 typescript-angular 创建 package.json?
【发布时间】:2020-03-16 00:58:11
【问题描述】:

我正在使用 openapi-generator-maven-plugin 为typescript-angular 生成代码,如下所示:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
  <build>
    <plugins>
      <plugin>
        <groupId>org.openapitools</groupId>
        <artifactId>openapi-generator-maven-plugin</artifactId>
        <version>4.2.0</version>
        <executions>
          <execution>
            <goals>
              <goal>generate</goal>
            </goals>
            <configuration>
              <inputSpec>${project.basedir}/../my_server/openapi.json</inputSpec>
              <generatorName>typescript-angular</generatorName>
              <output>${project.basedir}</output>
              <npmName>myClientRest</npmName>
              <npmRepository>http://localhost:8444/repository/npm-releases/</npmRepository>
              <providedInRoot>true</providedInRoot>
              <apiModulePrefix>my</apiModulePrefix>
              <stringEnums>true</stringEnums>
            </configuration>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>
</project>

我现在缺少的是一个package.json 文件,以便我可以创建一个npm install。 从一些较旧的 swagger 示例看来,使用 swagger 插件生成了一个 package.json 文件。

所以我的问题是为什么没有生成 package.json 文件,我该怎么做才能得到一个?

生成器运行的输出在我看来没问题:

[INFO] --- openapi-generator-maven-plugin:4.2.0:generate (default) @client ---

[INFO] OpenAPI 生成器:typescript-angular(客户端)

[INFO] 生成器“typescript-angular”被认为是稳定的。

[INFO] 提示:环境变量“TS_POST_PROCESS_FILE”(可选)未定义。例如。要格式化源代码,请尝试 'export TS_POST_PROCESS_FILE="/usr/local/bin/prettier --write"' (Linux/Mac)

[INFO] 注意:要启用文件后处理,'enablePostProcessFile' 必须设置为true(CLI 为--enable-post-process-file)。

[INFO] 为 Angular 8.0.0 生成代码 ...

[INFO](可以通过设置additionalProperty ngVersion来选择角度版本)

[INFO] 写入文件 C:\my-client-rest\api\default.service.ts

[INFO] 写入文件 C:\my-client-rest\model\models.ts

[INFO] 写入文件 C:\my-client-rest\api\api.ts

[INFO] 写入文件 C:\my-client-rest\index.ts

[INFO] 写入文件 C:\my-client-rest\api.module.ts

[INFO] 写入文件 C:\my-client-rest\configuration.ts

[INFO] 写入文件 C:\my-client-rest\variables.ts

[INFO] 写入文件 C:\my-client-rest\encoder.ts

[INFO] 写入文件 C:\my-client-rest.gitignore

[INFO] 写入文件 C:\my-client-rest\git_push.sh

[INFO] 写入文件 C:\my-client-rest\README.md

[INFO] 写入文件 C:\my-client-rest.openapi-generator\VERSION

【问题讨论】:

    标签: angular typescript maven npm openapi-generator


    【解决方案1】:

    看起来插件的描述不是很清楚(至少对我来说),因为它似乎是:

    <configuration>
      <npmName>myClientRest</npmName>
    </configuration>
    

    错了,应该换成:

    <configuration>
      <additionalProperties>npmName=myClientRest</additionalProperties>
    </configuration>
    

    或与:

    <configuration>
      <configOptions>
        <npmName>tmsClientRest</npmName>
      </configOptions>
    </configuration>
    

    使 package.json 和 tsconfig.json 的生成工作。

    所以我原来的例子应该改成:

    <?xml version="1.0" encoding="UTF-8"?>
    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
    <build>
      <plugins>
        <plugin>
          <groupId>org.openapitools</groupId>
          <artifactId>openapi-generator-maven-plugin</artifactId>
          <version>4.2.1</version>
          <executions>
            <execution>
              <goals>
                <goal>generate</goal>
              </goals>
              <configuration>
                <inputSpec>${project.basedir}/../my_server/openapi.json</inputSpec>
                <generatorName>typescript-angular</generatorName>
                <output>${project.basedir}</output>
                <configOptions>
                  <npmName>tmsClientRest</npmName>
                  <npmRepository>http://www.test-tms-archiv-net.de:8444/repository/npm-releases/</npmRepository>
                  <providedInRoot>true</providedInRoot>
                  <apiModulePrefix>tms</apiModulePrefix>
                  <stringEnums>true</stringEnums>
                </configOptions>
              </configuration>
            </execution>
          </executions>
        </plugin>
      </plugins>
    </build>
    </project>
    

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-09-01
    • 2022-06-27
    • 2022-11-08
    • 2020-07-26
    • 2022-10-13
    • 1970-01-01
    • 2022-07-23
    • 1970-01-01
    相关资源
    最近更新 更多