Как преобразовать приложение NodeJS в файл war - PullRequest
0 голосов
/ 27 июня 2019

Я создал панель мониторинга с React JS для внешнего интерфейса и Node JS для внутреннего интерфейса.Я уже собрал папку сборки для проекта React JS, теперь папка сборки находится внутри приложения Node JS.Под этим я подразумеваю, что когда я запускаю npm, сервер запускается на localhost 4000 и может получить доступ ко всем файлам внешнего интерфейса из папки сборки, это означает, что проект работает, когда я запускаю сервер js узлав локальной системе.Проблема в том, что я хочу преобразовать приложение, основанное на JS этого узла, в файл war, чтобы иметь возможность развернуть его на сервере apache.Я новичок во всем этом развертывании, поэтому любая помощь будет приветствоваться.

1 Ответ

0 голосов
/ 27 июня 2019

node.js предназначен для создания вашего собственного http-сервера, для запуска вашего кода javascript, также есть способ установить экспресс-модуль для создания экспресс-сервера для запуска вашего приложения node.js, также существует множество различных библиотек для создания иЗапустите узел js app, создав сервер, tomcat означает веб-сервер java http, то есть java-совместимую рабочую среду.

Вы пытались создать сборку, ваш package.json

"homepage":"http://localhost:8080/YOURAPPNAME",  
  "scripts": {
    "start": "react-scripts start",
    "build": "react-scripts build"    
  }

Если вывы используете maven, у вас есть доступ к pom.xml, вы можете делать настройки, настраивать профиль для prod, использовать 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>

вы можете установить BrowserRouter в файле app.jsx

<BrowserRouter basename={process.env.REACT_APP_ROUTER_BASE || ''}> 

вам может потребоваться настроить web.xml перенаправить ошибку на страницу индекса,

<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 do mvn package, вы можете изучить около webpack-war-plugin

...