如何将NodeJS应用程序转换为war文件

时间:2019-06-27 05:40:57

标签: node.js reactjs apache deployment war

我已经创建了一个仪表板,其中React JS用于前端,Node JS用于后端。我已经为React JS项目构建了build文件夹,现在build文件夹位于Node JS应用程序内部。 我的意思是,当我启动npm时,服务器开始在localhost 4000上运行,并且能够从build文件夹访问前端的所有文件,这意味着当我运行节点js服务器时项目正在运行在本地系统上。 问题是我想将基于节点JS的应用程序转换为war文件,以便能够将其部署在apache服务器上。 我对整个部署工作还是陌生的,因此可以提供任何帮助。

1 个答案:

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

现在要创建warmvn package,您可以探索webpack-war-plugin