Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
是否有用于自动构建依赖项列表的angularjs util?_Angularjs - Fatal编程技术网

是否有用于自动构建依赖项列表的angularjs util?

是否有用于自动构建依赖项列表的angularjs util?,angularjs,Angularjs,对于非精简代码,angular可以根据您为指令、控制器、服务等的回调函数指定的参数名自动计算依赖注入: angular.module('myApp') .directive('myDirective', function(myDependency1, myDependency2, myDependency3) { return whatever; }); 但是,如果我希望我的代码能够缩小,我必须用一个冗余的依赖项列表来丑化它,如下所示: angular.modu

对于非精简代码,angular可以根据您为指令、控制器、服务等的回调函数指定的参数名自动计算依赖注入:

angular.module('myApp')
    .directive('myDirective', function(myDependency1, myDependency2, myDependency3) {
        return whatever;
    });
但是,如果我希望我的代码能够缩小,我必须用一个冗余的依赖项列表来丑化它,如下所示:

angular.module('myApp')
    .directive('myDirective', ['myDependency1', 'myDependency2', 'myDependency3', function(myDependency1, myDependency2, myDependency3) {
        return whatever;
    }]);
这并不可怕,但有点烦人,而且是一个额外的维护步骤,总是存在的

将代码示例1转换为代码示例2并不难教机器这么做,所以我猜有人已经构建了一个util,可以作为一个预缩步骤自动完成这项工作,这样我实际使用的代码就可以保持去丑和非冗余


有人知道有这样的一个地方吗?我还没找到一个。。。我可能会构建一个,但如果已经存在,我不想重新发明轮子。

根据Dave的ng annotate建议,我发现在应用程序的构建阶段也有一个或多个用于自动添加依赖项列表的选项。我相信这对大多数安格拉斯人来说都是老生常谈了,但我想我应该把它添加到其他无意中发现这个问题的人身上

当时我并没有使用“咕噜”或“咕噜”,但我现在是“咕噜”的粉丝,尤其是“咕噜”。我使用了base gulpfile.js,但在升级/缩小之前对其进行了修改,在脚本任务中添加了一个ngAnnotate阶段:

var gulp = require('gulp');

// Include Plugins
var jshint = require('gulp-jshint');
var sass = require('gulp-sass');
var concat = require('gulp-concat');
var ngAnnotate = require('gulp-ng-annotate');
var uglify = require('gulp-uglify');
var rename = require('gulp-rename');

// Lint Task
gulp.task('lint', function() {
    return gulp.src('js/*.js')
        .pipe(jshint())
        .pipe(jshint.reporter('default'));
});

// Compile Sass
gulp.task('sass', function() {
    return gulp.src('scss/*.scss')
        .pipe(sass())
        .pipe(gulp.dest('css'));
});

// Concatenate & Minify JS
gulp.task('scripts', function() {
    return gulp.src('js/src/**/*.js')
        .pipe(concat('all.js'))
        .pipe(gulp.dest('dist'))
        .pipe(rename('all.min.js'))
        .pipe(ngAnnotate())       // AWESOME!
        .pipe(uglify())
        .pipe(gulp.dest('dist'));
});

// Watch Files For Changes
gulp.task('watch', function() {
    gulp.watch('js/*.js', ['lint', 'scripts']);
    gulp.watch('scss/*.scss', ['sass']);
});

// Default Task
gulp.task('default', ['lint', 'sass', 'scripts', 'watch']);

现在,我的原始源代码可以永远摆脱丑陋、冗余的注释列表

太棒了!我试试看。你可能应该把它作为一个答案而不是一个评论,这样它就可以被接受/投票。