将Angular2项目集成到Tomcat服务器中

Ram*_*n R 14 tomcat build angular

我为我的项目开发了一个Spring maven rest api.对于客户端,我正在使用带有打字稿的Angular2.作为Angular的新手,参考角度网站进行开发,使用npm和lite-server.

现在我需要将这两个独立的项目组合成一个项目,将html,js,css文件集成到我的maven项目中,并将其部署到Tomcat服务器中.

项目结构

客户端

Project
|__ app
      |_ all app files
|__ node_modules
|__ typings
|__ index.html
|__ package.json
|__ style.css
|__ systemjs.config.js
|__ tsconfig.json
|__ typings.json
Run Code Online (Sandbox Code Playgroud)

服务器端

Project
|__ src/main
        |__ java
        |__ resources
        |__ webapp
                 |__index.html
|__ pom.xml
Run Code Online (Sandbox Code Playgroud)

所有类似的帖子/博客,我发现建议用节点等更新pom.xml.但我需要的是,

  • 将angular-typescript项目编译为js文件.
  • 生成一组功能齐全的html,js,css文件.
  • 将它们复制到服务器webapp文件夹或者它们必须是.
  • 在Tomcat中运行Spring maven项目必须显示我的客户端索引页面
  • 当客户是两个独立的项目时,客户必须以相同的方式工作(与rest api通信)

怎么做到这一点?

npm run build在角度项目根文件夹中运行此命令,以创建dist包含生产就绪客户端文件的文件夹.但得到了这个错误

缺少脚本构建

.

Ram*_*n R 20

最后使用了angular-cli.ng build --prod创建生产就绪的构建.在tomcat webapps中的项目文件夹下复制index.html和.js文件(或者在eclipse中的Webcontent下).

编辑index.html as <base href = ".">并且工作正常

  • @RamanujanR感谢你向外看.我通过使用命令`ng build --base-href/[app-name] /`构建并将其包装在war文件中(通过grunt)解决了这个问题.我还必须将app.module.ts文件中的RouterModule导入调整为:`RouterModule.forRoot(appRoutues,{useHase:true})`这将在应用程序名称和路径之间添加一个`/#/`,但是据我所知,如果你将一个角度应用程序放在Tomcat或WebLogic上,这几乎是不可避免的. (2认同)