为什么openapi-generator不使用typescript-angular创建package.json?

时间:2019-11-20 10:29:15

标签: angular typescript maven npm openapi-generator

我正在使用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(默认)@ client ---

     

[INFO] OpenAPI Generator:typescript-angular(客户端)

     

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

     

[INFO]提示:未定义环境变量'TS_POST_PROCESS_FILE'(可选)。例如。要格式化源代码,请尝试“导出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

1 个答案:

答案 0 :(得分:0)

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

<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>