我有一些关于 MEAN 应用程序(包括 Angular2)的项目结构的基本问题。我已经按照angular.io的入门教程进行操作构建一个非常基本的 Angular2 应用程序。现在我尝试将此应用程序集成到 NodeJS 项目中,如下 tutorial 。问题是本教程是在第一个 Angular 出现时编写的。
我的问题是:
- 我应该将 Angular2 应用程序的 npm 包放在哪里?在 - 的里面 public 文件夹(因此应用程序有自己的packages.json)或内部 Node 包.json?
- tsc编译器应该如何实现?
布鲁诺
最佳答案
当我第一次开始迁移到 angular2 时,我遇到了一个非常类似的问题。 Angular.io 教程使用 System.js 作为其模块,这与使用 CommonJS 的 Node 基本上不兼容。这给您留下了两个选择。
分别为客户端和服务器设置 Typescript 编译器和 Node 模块。
在客户端上使用 CommonJS 模块和 Browserify 之类的工具。
现在对我来说,只有第二个选项是不错的选择。设置两次就违背了在客户端和服务器上使用相同语言的整个目的。
我已经为 Angular 2 准备了一个 Boilerplate,以便快速启动 Browserify。 您可以查看right here.
现在您所要做的就是为您的客户端应用程序创建一个公共(public)文件夹,并为您的 Node 模块创建静态路由。它可能看起来像这样:
app.use(express.static(__dirname + '/public'));
app.use("/node_modules",express.static(__dirname + '/../node_modules'));
我个人使用 VS Code Task 来编译 Typescript,然后在客户端使用 Watchify 将其捆绑在一起。在服务器端,我使用 nodemon 来监视任何更改并在编译时重新启动服务器。
关于javascript - Angular 2 和 NodeJS 项目设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36019298/