javascript - Angular 2 和 NodeJS 项目设置

标签 javascript node.js npm angular project-structure

我有一些关于 MEAN 应用程序(包括 Angular2)的项目结构的基本问题。我已经按照angular.io的入门教程进行操作构建一个非常基本的 Angular2 应用程序。现在我尝试将此应用程序集成到 NodeJS 项目中,如下 tutorial 。问题是本教程是在第一个 Angular 出现时编写的。

我的问题是:

  1. 我应该将 Angular2 应用程序的 npm 包放在哪里?在 - 的里面 public 文件夹(因此应用程序有自己的packages.json)或内部 Node 包.json?
  2. tsc编译器应该如何实现?

布鲁诺

最佳答案

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

  1. 分别为客户端和服务器设置 Typescript 编译器和 Node 模块。

  2. 在客户端上使用 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/

相关文章:

javascript - 如何打造类似魔兽世界的冷却效果?

node.js - Passport JWT : Cannot read property '_id' of undefined in MEAN

node.js - 安装node和npm时出错

javascript - 将网页的 CSS 转换为用于 react-native-render-html 的 javascript npm 包

javascript - 使用 jquery 类删除衣柜图像

javascript - 如何创建在您进入网站时加载的弹出窗口?

javascript:获取不重复的随机数组对

node.js - npm install 导致 'ENOENT: no such file or directory'

javascript - Meteor:超出最大调用堆栈大小

node.js - npm install 显示错误,找不到 git