就像标题所说的那样,我使用create-react-app创建了一个react应用程序,并将其编码在VSCODE
上。后来我不得不将所有这些文件添加到我的spring boot项目中。移动时,我也复制了所有节点模块。我现在需要节点模块吗?否则我可以摆脱它们,只保留诸如App.js
之类的特定于反应的文件吗?
答案 0 :(得分:1)
节点模块包含您的react应用所需的所有库。因此,这是您无法删除的重要部分。如果删除了它,则在开发应用程序时(使用npm start
命令),应用程序将无法正常工作。
要将您的React项目移至Spring,您必须构建该项目 请参阅此文档-https://github.com/facebook/create-react-app/blob/master/packages/cra-template/template/README.md
它将在您的react app文件夹中创建一个build文件夹。这个构建文件夹包含运行您的react项目所需的所有文件。因此,在部署项目时,您只需要该建筑项目中的文件。 (构建项目后无需Node_Modules)
接下来,将您的构建文件夹复制到Spring项目中的target/classes/public folder
中。然后将此插件添加到pom.xml
<plugin>
<groupId>com.github.eirslett</groupId>
<artifactId>frontend-maven-plugin</artifactId>
<version>1.6</version>
<configuration>
<workingDirectory>frontend</workingDirectory>
<installDirectory>target</installDirectory>
</configuration>
<executions>
<execution>
<id>install node and npm</id>
<goals>
<goal>install-node-and-npm</goal>
</goals>
<configuration>
<nodeVersion>v8.9.4</nodeVersion>
<npmVersion>5.6.0</npmVersion>
</configuration>
</execution>
<execution>
<id>npm install</id>
<goals>
<goal>npm</goal>
</goals>
<configuration>
<arguments>install</arguments>
</configuration>
</execution>
<execution>
<id>npm run build</id>
<goals>
<goal>npm</goal>
</goals>
<configuration>
<arguments>run build</arguments>
</configuration>
</execution>
</executions>
</plugin>
还要添加此插件
<plugin>
<artifactId>maven-antrun-plugin</artifactId>
<executions>
<execution>
<phase>generate-resources</phase>
<configuration>
<target>
<copy todir="${project.build.directory}/classes/public">
<fileset dir="${project.basedir}/frontend/build"/>
</copy>
</target>
</configuration>
<goals>
<goal>run</goal>
</goals>
</execution>
</executions>
</plugin>
构建项目,您的react项目将托管在Spring项目中
这里是完整的React + Spring项目的链接-https://medium.com/@mukundmadhav/build-and-deploy-react-app-with-spring-boot-and-mysql-6f888eb0c600