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-retc 在生产环境中运行我的项目。

但是:我有一个 node.js/express 服务器的自定义 API,它充当我的后端的包装器。

当使用ng servenpm 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 工作