为什么会这样?当我使用GULP
编译脚本时,控制台将显示错误,并说明我的directives
和/或controllers
未注册。然后要纠正此错误,我在controller
文件中创建了app变量,然后呈现了一个新错误,然后放回了app变量声明,一切正常。
这是我的Gulp脚本
var gulp = require('gulp'),
plugins = require('gulp-load-plugins')({
pattern: ['gulp-*', 'gulp.*'],
replaceString: /\bgulp[\-.]/
});
var path = {
jsFiles: "./js/**",
scriptFile: "scripts.min.js",
output: "dist/assets/"
};
var options = {
ie8: true,
warnings: true,
mangle: true
};
gulp.task('scripts', function (cb) {
return gulp.src(path.jsFiles)
.pipe(plugins.sourcemaps.init())
.pipe(plugins.jsdoc3(cb))
.pipe(plugins.concat(path.scriptFile))
.pipe(plugins.babel())
.pipe(plugins.ngAnnotate())
.pipe(plugins.uglify(options))
.pipe(plugins.sourcemaps.write("../../maps"))
.pipe(gulp.dest(path.output))
})
TLDR:我的Gulp任务有时会无序地编译AngularJS
directives
和controllers
,从而导致我的应用程序声明undefined
。
答案 0 :(得分:1)
将地球仪传递到
gulp.src
不能保证不能下订单,因此可能会不时得到错误的订单。但是gulp.src也接受您需要包含的路径数组,这应该保证顺序
因此,请尝试拆分包并将路径作为第一个元素传递到angular.min.js:
gulp.src(['path/to/angular.min.js', 'path/to/your/code'])
答案 1 :(得分:0)
您应该对角度文件进行排序,并且有一些库可以做到这一点。 https://www.npmjs.com/package/gulp-angular-filesort是其中之一。