在Spring中使用React的create-react-app-我是否可以删除节点模块?

时间:2018-11-28 21:10:46

标签: java spring reactjs spring-boot

就像标题所说的那样,我使用create-react-app创建了一个react应用程序,并将其编码在VSCODE上。后来我不得不将所有这些文件添加到我的spring boot项目中。移动时,我也复制了所有节点模块。我现在需要节点模块吗?否则我可以摆脱它们,只保留诸如App.js之类的特定于反应的文件吗?

1 个答案:

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