【问题标题】:How to Deploy a "create-react-app" based app on jetty/tomcat如何在 jetty/tomcat 上部署基于“create-react-app”的应用程序
【发布时间】:2018-12-18 11:45:01
【问题描述】:

我正在尝试在 jetty 中部署一个基于反应的应用程序。作为其中的一部分,我想尝试在码头服务器中做同样的事情。 我点击了一个链接: https://www.megadix.it/blog/create-react-app-servlet/

上面的链接解释了有关它的详细信息,最后有一个用于制造战争的 github 项目。链接如下: https://github.com/megadix/create-react-app-servlet

现在,我可以在 tomcat 9 中部署使用上述 github 项目创建的战争。我无法了解 node_modules 的依赖关系解析是如何发生的。我也无法在码头部署相同的战争(将战争放在 webapps 文件夹中并启动码头)

谢谢

【问题讨论】:

    标签: node.js maven tomcat npm jetty


    【解决方案1】:

    单页应用程序需要编译成一个(相同情况下更多).js 文件。在您的情况下,create-react-app 或类似工具负责满足此要求。

    在 pom.xml 执行列表中,可以看到 npm install、npm build 命令。它们与 mvn clean install 和 mvn buuild 非常相似。

    依赖项从 package.json 依赖项字段解析并安装在 node_modules 下。一旦存在依赖项,npm build(或 create-react-app-servlet build)会将所有源代码 + 依赖项编译成一个 js 文件。这可能有一个类似于 main.XXXXXX.js 的名称。

    最后,你就有了一个由.html、.js和其他资源组成的dist文件夹。

    如果你能分享更多关于码头部署的细节会更好

    【讨论】:

    • 谢谢。当我尝试在码头上部署战争时(在 webapps 中复制战争并启动码头)。在打开“localhost:8080/my-app”时,我得到 404。
    • 另外,在你上面的评论中,当我主持它时,它是对 tomcat 的战争。 tomcat 是如何知道 node_modules 的。我的意思是我在 tomcat 的“webapps/my-app/*”下看不到任何 node_modules。
    • 码头上的 404 错误对我来说似乎很奇怪。两个 war 目录都应该有一个 index.html 文件,并且应该默认打开。也许您的码头服务器默认不打开 index.html 文件?你可以试试 localhost:8080/my-app/index.html。 my-app 下不应该有任何 node_modules。正如我所说,当您运行构建任务时,所有源代码以及 node_modules 所需的 javascript 代码都编译到 main.js 文件中。一旦它在 main.js 中,你就不再需要 node_modules
    • 感谢 main.js 的解释。我也得到 404 和 localhost:8080/my-app/index.html
    猜你喜欢
    • 2020-10-21
    • 1970-01-01
    • 1970-01-01
    • 2011-05-17
    • 2019-01-12
    • 2017-05-04
    • 2019-06-13
    • 2023-03-02
    相关资源
    最近更新 更多