Node.js 如何在Tomcat中部署React应用程序?
问题陈述:我的申请有两部分。 前端和后端。前端使用Node.js 如何在Tomcat中部署React应用程序?,node.js,maven,tomcat,Node.js,Maven,Tomcat,问题陈述:我的申请有两部分。 前端和后端。前端使用React构建,后者使用Node.js,后端使用maven web app,前端和后端之间的通信使用REST完成。 我的应用程序在两台服务器上运行。前端在节点上运行。jsans后端在tomcat上运行。 我想要的是在同一台服务器上部署这两个部件 我该怎么做? 我试过的 第一种方法:我尝试使用maven插件。在pom.xml org.codehaus.mojo execmaven插件 执行npm安装 编译 npm --前缀 ${basedir}
React
构建,后者使用Node.js
,后端使用maven web app,前端和后端之间的通信使用REST
完成。
我的应用程序在两台服务器上运行。前端在节点上运行。js
ans后端在tomcat上运行。
我想要的是在同一台服务器上部署这两个部件
我该怎么做?
我试过的
第一种方法:我尝试使用maven插件。在pom.xml
org.codehaus.mojo
execmaven插件
执行npm安装
编译
npm
--前缀
${basedir}/src/main/webapp/ui
安装
${basedir}/src/main/webapp/ui
执行官
exec网页包
编译
npm
--前缀
${basedir}/src/main/webapp/ui
跑
建造
执行官
Node.js本身就是一个服务器,不能由tomcat处理。您必须同时安装两个服务器应用程序(前端在节点上,后端在tomcat上)
由于tomcat不会为您的前端文件提供服务,所以您不应该将它们安装在tomcat文件夹中并将它们分开(不过您仍然可以使用maven来安装它们)
node.js服务器需要依赖项文件(node_模块文件夹),您无法删除它
在中也遇到了类似的难题,这就是我所做的:
output: {
filename: '[name].[contenthash].js',
path: path.resolve(__dirname, 'FrontEnd/src/main/webapp/'),
publicPath: ''
},
因此,当您在控制台中运行npm run build时,webpack将生成输出文件并将其放置在前端中:
最后,要告诉Webpack生成JSP文件,还要告诉它在每次构建中清除除WEB-INF和META-INF之外的所有内容,您需要向Webpack添加以下插件:
plugins: [
new CleanWebpackPlugin(['AMS/src/main/webapp/'], {
exclude: ['WEB-INF', 'META-INF'],
verbose: true
}),
new HtmlWebpackPlugin({
filename:'index.jsp'
})
]
我希望这会有帮助。。祝你好运