gpt4 book ai didi

reactjs - 将 React 应用程序上传到 Nexus

转载 作者:行者123 更新时间:2023-12-05 06:29:11 31 4
gpt4 key购买 nike

我使用 create-react-app 构建了一个 React-Application。

生产构建是在 Jenkins 上通过以下方式完成的:

npm 安装 --prod
npm 运行构建

然后我就有了“准备部署”的工件。

但是我怎样才能在我的 Nexus-Server 上得到这个神器呢?
我可以使用 package.json 中的版本吗?
在上传之前,我必须自己制作一个 zip 或类似的东西吗?

拥有历史会非常好,并且从 nexus 上的工件构建 docker 比再次构建会更容易/更快。

你们是怎么解决的?感谢您的回答。

最佳答案

我知道这个问题很老,但它可能对其他人有帮助。

我最近不得不做类似的事情。我的方法是:

  1. 将项目转换为 Maven 项目
  2. pom.xml中配置我的私有(private)仓库
    <distributionManagement>
<snapshotRepository>
<id>RepoId</id>
<url>http://.../repositories/snapshots/</url>
</snapshotRepository>
<repository>
<id>RepoId</id>
<url>http://.../repositories/releases/</url>
</repository>
</distributionManagement>
  1. 配置maven clean插件清空build目录
            <plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-clean-plugin</artifactId>
<configuration>
<filesets>
<fileset>
<directory>build</directory>
<includes>
<include>**/*</include>
</includes>
<followSymlinks>false</followSymlinks>
</fileset>
</filesets>
</configuration>
</plugin>
  1. 配置 maven jar 插件以跳过 jar 创建
            <plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<executions>
<execution>
<id>default-jar</id>
<phase>none</phase>
</execution>
</executions>
</plugin>
  1. 整合frontend-maven-plugin - 我的项目需要 yarn,但它也可以用 npm 运行
            <plugin>
<groupId>com.github.eirslett</groupId>
<artifactId>frontend-maven-plugin</artifactId>
<version>1.12.1</version>
<executions>
<!-- install node & yarn -->
<execution>
<id>install node and yarn</id>
<goals>
<goal>install-node-and-yarn</goal>
</goals>
<configuration>
<nodeVersion>v16.13.0</nodeVersion>
<yarnVersion>v1.22.17</yarnVersion>
</configuration>
</execution>

<!-- yarn install -->
<execution>
<id>yarn install</id>
<goals>
<goal>yarn</goal>
</goals>
</execution>

<!-- yarn run build -->
<execution>
<id>yarn run build</id>
<goals>
<goal>yarn</goal>
</goals>
<configuration>
<arguments>run build</arguments>
</configuration>
</execution>
</executions>
</plugin>
  1. 集成 maven assembly 插件,以便将 build 目录下的所有内容打包成一个 zip 文件
            <plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<executions>
<!-- pack everything under /build into a zip -->
<execution>
<id>create-distribution</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
<configuration>
<descriptors>
<descriptor>assembly.xml</descriptor>
</descriptors>
</configuration>
</execution>
</executions>
</plugin>

assembly.xml 看起来像:

<?xml version="1.0" encoding="UTF-8"?>
<assembly xmlns="http://maven.apache.org/ASSEMBLY/2.1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/ASSEMBLY/2.1.0 http://maven.apache.org/xsd/assembly-2.1.0.xsd">
<includeBaseDirectory>false</includeBaseDirectory>
<formats>
<format>zip</format>
</formats>
<fileSets>
<fileSet>
<outputDirectory>/</outputDirectory>
<directory>build</directory>
</fileSet>
</fileSets>
</assembly>
  1. 最后运行 mvn clean deploy 以将 zip 文件上传到 nexus。

此外,我发现了这个 solutions用于同步package.json 版本和pom.xml 版本,但我没有使用它。

关于reactjs - 将 React 应用程序上传到 Nexus,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53766588/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com