【发布时间】:2015-04-09 11:03:37
【问题描述】:
当我创建一个 Angular 应用程序时,我喜欢保持凌乱的“开发者模式”,这样我就可以快速查看我的更改,而无需重新构建或做一些其他烦人的工作来查看更改的样子。
在angular-app 项目中,除非您执行grunt build,否则没有任何效果。这意味着对于每一个微小的变化,您都必须重新构建项目才能看到它的实际效果。
这不是一种愚蠢的做事方式吗?有没有更好的办法?还是我错过了一些我不知道的技术?
【问题讨论】:
当我创建一个 Angular 应用程序时,我喜欢保持凌乱的“开发者模式”,这样我就可以快速查看我的更改,而无需重新构建或做一些其他烦人的工作来查看更改的样子。
在angular-app 项目中,除非您执行grunt build,否则没有任何效果。这意味着对于每一个微小的变化,您都必须重新构建项目才能看到它的实际效果。
这不是一种愚蠢的做事方式吗?有没有更好的办法?还是我错过了一些我不知道的技术?
【问题讨论】:
是的,你错过了什么。
Grunt 是一个任务管理器,具有watch 功能,可以在文件更改时监视文件系统并运行任务。 angular-app 库在名为 watch 的 grunt 任务中实现了此功能。
要启动它,只需运行:
grunt watch
从您的命令行。
如果您想了解更多关于 grunt 和类似内容(例如 gulp)的信息,请阅读构建工具。 Google 上有很多信息。
【讨论】:
样板文件非常适合研究组织应用程序的最佳方式,但您很有可能最终得到自己的结构。
如果您之前没有机会,我建议您尝试 Requirejs。 This Yeoman generator 是不错的 generator-angular 的一个分支,并且在使用 Requirejs 时在脚手架方面做得非常好(需要更新项目的节点依赖项才能正确构建它,因此请注意这一点)。 Requirejs 的模块包装器本身可能需要一些时间来适应语法,但生成器会做一些脏活。
生成的项目旨在使用 grunt(连接、缩小等)构建到 dist/ 文件夹,但由于 Requirejs 是面向浏览器的,因此生成的应用程序将在其未构建状态下完全可用于开发(只需确保bower 依赖项已正确链接)。
我还建议 LESS 代替其他预处理器,它可以在客户端使用而无需编译。
Gulp 通常比 Grunt 快得多,但对于快速调试任务,构建过程仍然可以是 PITA。
【讨论】: