Angular 5 Universal:在开发中使用 server.ts
Posted
技术标签:
【中文标题】Angular 5 Universal:在开发中使用 server.ts【英文标题】:Angular 5 Universal: Using server.ts in Development 【发布时间】:2018-04-18 13:41:30 【问题描述】:我使用新的Angular Universal Starter 开始了一个新的 Angular 5 项目。对于新版本,他们只提供 Angular CLI 版本作为入门。
一切正常,我可以使用npm run serve:s-s-r
etc 在生产环境中运行我的项目。
但是:我有一个 node.js/express 服务器的自定义 API,它充当我的后端的包装器。
当使用ng serve
或npm run start
启动正在开发的项目时,我有一个工作的Angular应用程序,可以在文件更改等时自动重新加载。
不幸的是,在开发过程中,server.ts
文件被忽略了,所以我的 API 包装器不可用。
那么有没有人使用开发中使用的server.ts
文件启动并运行新的 Angular Starter Kit?
【问题讨论】:
【参考方案1】:截至目前,angular cli 不支持通用在开发模式下运行。如果你需要观察变化,你可以试试 nodemon:
nodemon --ignore dist -e ts --exec 'npm run build:s-s-r && npm run serve:s-s-r'
每次更改 .ts 文件都会重新启动,但会重新构建整个应用程序,因此速度不快。
【讨论】:
非常感谢。正如你所提到的,它并不完美。但是现在它可以满足我在开发过程中需要的更多便利!在 Github,他们正在讨论为初学者添加某种 Dev-Setup,所以将来可能会有更好的解决方案>>github.com/angular/universal-starter/issues/490 仍然没有使用 angular-universal 进行热重载?【参考方案2】:GithubFriOne 提到了使用ts-node-dev
的更好解决方法:
ts-node-dev --fast --respawn server.dev.ts
为了运行它,我将 server.ts 文件复制到 server.dev.ts,仅使用我在开发时需要访问的 API。这样您就可以在开发时使用ng serve
进行快速重建,并且仍然可以访问您的节点api。
【讨论】:
以上是关于Angular 5 Universal:在开发中使用 server.ts的主要内容,如果未能解决你的问题,请参考以下文章
Angular 5 Universal 在服务器端渲染期间等待 http 请求返回
如何在 Angular 5 (s-s-r with Universal) 中使用 Google Analytics 功能?
如何在 Angular 4 Universal 中发出 http post 请求?
使用Angular4(Angular Universal)的服务器端渲染[关闭]
Angular 2 Universal ng2-bootstrap 不工作 Safari
集成 Angular + Nodejs + Spring Boot Java REST API 使 Angular Universal 工作