使用 gulp-ng-annotate 和 gulp-systemjs-builder
Posted
技术标签:
【中文标题】使用 gulp-ng-annotate 和 gulp-systemjs-builder【英文标题】:using gulp-ng-annotate with gulp-systemjs-builder 【发布时间】:2017-09-22 03:15:22 【问题描述】:我以 CJS 格式编写了我的 angularjs 应用程序,并使用 gulp-systemjs-builder
将它们捆绑到一个文件中。
我正在尝试将输出通过管道传输到 gulp-ng-annotate
以用于 DI,但它失败了,因为 systemjs-builder 在 \* @ngInject *\
和函数声明之间插入了几行。
例子:
捆绑前:
/* @ngInject */
function ReportCtrl($scope)
var _ctrl = this;
捆绑后:
/* @ngInject */
var global = this || self,
GLOBAL = global;
function ReportCtrl($scope)
var _ctrl = this;
谁能建议我如何解决这个问题?
【问题讨论】:
【参考方案1】:在https://github.com/olov/ng-annotate找到解决方案
我不得不使用字符串"ngInject";
作为函数声明后的第一行,而不是使用注释/* @ngInject */
。这样gulp-systemjs-builder
就不会弄乱顺序,ng-annotate
可以成功地注释函数。
所以不要写这个 -
/* @ngInject */
function ReportCtrl($scope)
var _ctrl = this;
我必须写这个 -
function ReportCtrl($scope)
"ngInject";
var _ctrl = this;
【讨论】:
以上是关于使用 gulp-ng-annotate 和 gulp-systemjs-builder的主要内容,如果未能解决你的问题,请参考以下文章