这是一篇由 Matthieu Lux 和 Mehdy Dara 撰写的客座文章。
简介 
我们(@Swiip 和 @zckrs)开始开发我们的 Yeoman 生成器已经一年多了。今天,我们庆祝我们的第一个主要稳定版本发布:generator-gulp-angular 1.0.0。
起初,我们想很好地融合 generator-gulp-webapp 和 generator-angular,因为我们在使用 Angular,但厌倦了 Grunt 的冗长。然后,项目的受欢迎程度开始上升,它的雄心壮志也随之增长。
理念
我们遵循了 Yeoman 的所有原则并添加了我们自己的原则
- 提供一个编写良好的种子项目,遵循文件夹结构和代码风格的最佳建议。
- 提供选项,使用户能够使用最新的技术以最佳的工具和优化功能开始。
- 在项目的不同部分使用自动注入:index.html 中的供应商和源脚本标签、样式文件、供应商、css 或预处理。
- 提供尽可能完美的测试覆盖率,用于生成器本身以及它生成的代码。
支持的技术
当我们谈论这是一个稳定版本时,我们并不是在开玩笑。我们集成了很多技术和语言,从 CoffeeScript 到 TypeScript,从 Sass 到 Stylus。组合的数量超过数百万!我们编写了测试、文档并修复了 12 个次要版本和 2 个候选版本的问题,以便能够交付一个完美配置的种子项目,无论您选择什么选项。
提供的优化
我们使用一些 Gulp 插件集成了许多 Web 应用程序优化
- browserSync:具有实时重载和设备同步功能的完整开发 Web 服务器
- ngAnnotate:将简单的注入转换为完整的语法,以确保混淆后的代码也能正常工作
- angular-templatecache:所有 HTML 部分都将转换为 JS,并打包到应用程序中
- ESLint:JavaScript 的可插拔 lint 工具
- watch:监视您的源文件并自动重新编译它们
- useref:允许在 HTML 文件的注释中配置文件
- uglify:优化所有 JavaScript 代码
- clean-css:优化所有 CSS 代码
- rev:在文件名中添加哈希值,以防止浏览器缓存问题
- karma:开箱即用的 karma 单元测试配置
- protractor:开箱即用的 protractor 端到端测试配置
2.0.0 即将到来…
但 1.0.0 版本并不是终点。在维护 v1 分支的同时,我们启动了一个名为 FountainJS 的新 GitHub 组织,目标是面向未来的 v2 版本。由于构建工具的上下文在一年内发生了巨大变化,因此这将是代码库的重启。主要卖点将是使用 Yeoman Generator 的组合支持,升级到 Gulp 4 并在 ES6 中编写它。最后,我们希望在选项方面开辟新的视野:当然包括依赖管理,但为什么不也包括 Web 框架(有人谈论 React 吗?)以及后端呢。
去尝试一下 generator-gulp-angular v1.0.0 版本吧!任何关于新的 FountainJS 项目的反馈、问题或贡献都将受到欢迎。