Angular 2 和 NodeJS 项目设置
Angular 2 and NodeJS project setup
我有一些关于包括Angular2在内的MEAN应用程序项目结构的基本问题。我按照 angular.io 的入门教程构建了一个非常基本的 Angular2 应用程序。现在,我尝试按照本教程将此应用程序集成到 NodeJS 项目中。问题是本教程是在第一个 Angular 的时候编写的。
我的问题是:
- 我应该把我的 Angular2 应用程序的 npm 包放在哪里?里面公用文件夹(因此应用有自己的 packages.json)或位于节点包.json?
- TSC编译器应该如何实现?
布鲁诺
我第一次开始迁移到 angular2 时遇到了非常类似的问题。Angular.io 教程使用System.js作为其模块,这基本上与使用CommonJS的Node不兼容。这给您留下了两个选择。
-
分别为客户端和服务器设置打字稿编译器和节点模块。
-
将 CommonJS 模块与客户端上的 Browserify 等模块一起使用。
现在对我来说,只有第二个选项是一个不错的选择。设置两次违背了在客户端和服务器上使用相同的语言的全部目的。
我已经为 Angular 2 准备了一个样板,以便快速开始使用 Browserify。你可以在这里查看。
现在,您所要做的就是为客户端应用程序创建一个公用文件夹,并为节点模块创建静态路由。它可能看起来像这样:
app.use(express.static(__dirname + '/public'));
app.use("/node_modules",express.static(__dirname + '/../node_modules'));
就我个人而言,我使用 VS Code Task 来编译我的 Typescript,然后在客户端使用 Watchify 将其捆绑在一起。在服务器端,我使用 nodemon 来监视任何更改并在编译时重新启动服务器。
相关文章:
- 在BootStrap菜单栏中为所选项目设置背景,类似于BootStrap中的父导航选项
- 如何在NativeScript中从列表中删除项目时设置动画
- 谷歌图表堆叠柱状图.如何设置每个单独堆叠项目(数据系列)的样式
- 设置单击项目符号导航后不起作用的间隔
- 在 JavaScript 对象中添加子对象时获取“无法设置未定义的属性'项目'”
- 获取项目的顺序 jQuery 可排序并设置它们的顺序
- 如何在Javascript中设置随机生成的项目列表的样式
- 是否可以设置柔盒插入、移除和项目位置的动画
- 用Javascript将焦点设置在select元素上会将第一个项目滚动到视图之外
- 在owlCarousel中设置活动项目
- Angular 2 和 NodeJS 项目设置
- 使用 javascript 为每个项目设置属性
- AngularJS指令在ng-repeat中为每个项目设置不同的值,只重复一次
- angularjs i18n项目设置
- 为Javascript项目设置实习生
- Onsen-ui:将旋转木马项目设置为0(带旋转木马列表的滑动菜单菜单)
- Aurelia项目设置有开箱错误,修复方法是什么?
- Sencha Touch -为一组项目设置属性
- 在jQuery中为特定ID或整个项目设置“无默认排序”(“aaSorting”:[])
- 为javascript项目设置jshint和travis-ci