我已经创建了一个仪表板,其中React JS用于前端,Node JS用于后端。我已经为React JS项目构建了build文件夹,现在build文件夹位于Node JS应用程序内部。 我的意思是,当我启动npm时,服务器开始在localhost 4000上运行,并且能够从build文件夹访问前端的所有文件,这意味着当我运行节点js服务器时项目正在运行在本地系统上。 问题是我想将基于节点JS的应用程序转换为war文件,以便能够将其部署在apache服务器上。 我对整个部署工作还是陌生的,因此可以提供任何帮助。
答案 0 :(得分:0)
node.js旨在创建您自己的http服务器,以运行您的JavaScript代码, 还有一种安装Express模块的方式来创建Express服务器以运行您的node.js应用程序,同样,通过创建服务器来创建和运行Node js应用程序也有很多不同的库,tomcat表示Java HTTP Web服务器,即Java兼容运行环境。
您已尝试创建构建,您的package.json
"homepage":"http://localhost:8080/YOURAPPNAME",
"scripts": {
"start": "react-scripts start",
"build": "react-scripts build"
}
如果您正在使用Maven,则可以访问pom.xml
,可以进行配置,为产品配置配置文件,使用org.codehaus.mojo
<configuration>
<environmentVariables>
<PUBLIC_URL>http://frugalisminds.com/${project.artifactId}</PUBLIC_URL>
<REACT_APP_ROUTER_BASE>/${project.artifactId}</REACT_APP_ROUTER_BASE>
</environmentVariables>
</configuration>
您可以在app.jsx文件中设置BrowserRouter
<BrowserRouter basename={process.env.REACT_APP_ROUTER_BASE || ''}>
您可能需要配置web.xml
将err重定向到索引页,
<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
version="2.4">
<display-name>YOUR REACT SERVLET PROJECT NAME</display-name>
<error-page>
<error-code>404</error-code>
<location>/index.html</location>
</error-page>
</web-app>
现在要创建war
做mvn package
,您可以探索webpack-war-plugin