Angular 2和NodeJS项目设置

时间:2016-03-15 18:29:07

标签: javascript node.js npm angular project-structure

我有一些关于MEAN-app项目结构的基本问题,包括Angular2。我已经按照angular.io的开始教程来构建一个非常基本的Angular2应用程序。现在,我尝试在此tutorial之后将此应用程序集成到NodeJS项目中。问题是本教程是在第一个Angular时编写的。

我的问题是:

  1. 我应该在哪里放置我的Angular2应用程序的npm包?在 - 的里面 公共文件夹(所以应用程序有自己的packages.json)或内部 node packages.json?
  2. 应该如何实现tsc编译器?
  3. 布鲁诺

1 个答案:

答案 0 :(得分:1)

当我第一次开始向angular2迁移时,我遇到了一个非常类似的问题。 Angular.io教程使用System.js作为其模块,这与使用CommonJS的Node基本上不兼容。这为您提供了两个选项。

  1. 分别为Client和Server设置Typescript编译器和Node模块。

  2. 在客户端上使用CommonJS模块和Browserify之类的东西。

  3. 现在对我来说,只有第二种选择是一个不错的选择。两次设置失败了在客户端和客户端使用相同语言的全部目的。服务器

    我为Angular 2准备了Boilerplate,以便快速开始使用Browserify。 您可以查看right here.

    现在,您只需为客户端应用程序创建公用文件夹,并为节点模块创建静态路由。它可能看起来像这样:

    app.use(express.static(__dirname + '/public'));
    app.use("/node_modules",express.static(__dirname + '/../node_modules'));
    

    我个人使用VS Code Task编译我的Typescript,然后在客户端使用Watchify将它们捆绑在一起。在服务器端,我使用nodemon监视任何更改,并在编译时重新启动服务器。