在尝试让 Angular (1.x) 与 systemjs 一起工作时,我意识到目前没有能力(据我所知)自动插入$inject
到 Angular 组件中,即使函数的参数被破坏,这也能让组件保持工作状态缩小器。手动创建$inject
注释是乏味的、容易出错的并且违反了DRY原则。
有一个成熟的 npm 模块ng-annotate
可以解决这个问题,并在许多类似的情况下用于捆绑。当我一直在探索 SystemJS 时,我看到有一个插件系统包括翻译源代码的能力,这正是ng-annotate
它的功能。
不过,据我所知,SystemJS 只让您能够将特定的文件扩展名映射到单个加载器,并且所有插件示例都支持新的文件类型。我想做的是对 SystemJS 的转译过程的输出进行后处理,而不是添加新的文件类型。看起来 SystemJS 应该能够做到这一点,因为它有一个处理管道,但我不太清楚如何以正确的方式连接它。现在我正在使用 Browserify 来实现相同的效果,但我最终得到了一组相当复杂的构建任务,如果可能的话,我想用 SystemJS 来简化它。
能够ng-annotate
在加载器管道中使用 SystemJS 的其他策略也将受到赞赏。