- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
有人可以举例说明 gulp-angular-filesort 的真正用途以及如何正确使用它吗?
问题是,我最近意识到我的 gulp-angular-filesort 根本不排序 angularjs 文件,但是我的 AngularJS 应用程序有很多文件工作正常。所以,我想出了两个问题:
我认为 gulp-angular-filesort 会查看 angular.module 语句并根据括号中指定的依赖关系对文件进行排序。看来我错了。
请看下面我的示例。
//文件:Gulpfile.js
'use strict';
var
gulp = require('gulp'),
connect = require('gulp-connect'),
angularFilesort = require('gulp-angular-filesort'),
inject = require('gulp-inject');
gulp.task('default', function () {
gulp.src('app/index.html')
.pipe(inject(
gulp.src(['app/js/**/*.js']).pipe(angularFilesort()),
{
addRootSlash: false,
ignorePath: 'app'
}
))
.pipe(gulp.dest('app'))
;
connect.server({
root: 'app',
port: 8081,
livereload: true
});
});
//a_services.js
'use strict';
angular.module('myServices', [])
.factory('MyService', function () {
return {
myVar:1
};
})
;
//b_controllers.js
'use strict';
angular.module('myControllers', ['myServices'])
.controller('MyController', function ($scope, MyService) {
$scope.myVar = MyService.myVar;
})
;
//c_app.js
'use strict';
angular.module('myApp', ['myControllers']);
gulp-inject 的结果如下:
<!-- inject:js -->
<script src="js/c_app.js"></script>
<script src="js/b_controllers.js"></script>
<script src="js/a_services.js"></script>
<!-- endinject -->
我期望完全相反的顺序来使应用程序正常工作(但它仍然有效)。因此,使用 gulp-angular-filesort 只是按字母顺序对文件进行排序,尽管 Angular.module(...,[...]) 中指定了所有依赖项
这是怎么回事?
最佳答案
实际上在你的情况下你不需要gulp-angular-filesort因为你为每个文件声明了一个模块。 Angular 的依赖注入(inject)机制将根据您的依赖关系找出调用模块的正确方法。
您需要gulp-angular-filesort仅当您有一个模块分布在多个文件中时。因此,对于您的示例,如果所有文件都使用“myApp”作为模块名称。然后插件将对文件进行正确排序:始终将具有依赖项的文件排在其他文件之前。
这里修改了您的示例,以便 gulp-angular-filesort需要:
//a_services.js
'use strict';
angular.module('myApp')
.factory('MyService', function () {
return {
myVar:1
};
})
;
//b_controllers.js
'use strict';
angular.module('myApp')
.controller('MyController', function ($scope, MyService) {
$scope.myVar = MyService.myVar;
})
;
//c_app.js
'use strict';
angular.module('myApp', []);
在这种情况下,这仍然是:
关于angularjs - gulp-angular-filesort 对于 gulp-inject 到底有什么作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35961853/
这对你们来说可能很简单,但由于我是java新手,所以我想知道实际上什么是 接下来的部分会发生什么? if (args.length > 0) { file = args[0]; } publi
在我的 View Controller 中,我将 UITapGestureRecognizer 添加到 self.view。我在 self.view 之上添加了一个小 View 。当我点击小 View
我今天尝试从 Obj-C 开始并转到 Swift,我正在阅读文档。我试图在 Swift 中创建一个简单的 IBOutlet,但它不断给我这些错误。 View Controller 没有初始化器 req
我正在尝试使用 VIM 完成(字典和当前缓冲区),但我遇到了问题?和 !在方法名称的末尾。我能以某种方式向 vim 解释方法名称(基本上是单词)最后只能有它,而且只有一个,即 method_name
我是一名优秀的程序员,十分优秀!