Grunt:更改 index.html 中 js 文件的顺序
Grunt: change order of js files in index.html
我正在用 grunt 构建 angular 项目,假设我有以下结构:
-- app.js
-- modal
----createTemplate
------createTemplate.js
----modal.js
和createTemplate.js为模块实现控制器,在modal.js中声明,例如:
modal.js
angular.module('modal', [])
.controller('ModalInstanceCtrl', function($scope) {
//some stuff
});
createTemplate.js
angular.module('modal')
.controller('CreateTemplateCtrl', function($scope) {
//some stuff
});
我有 Grunt 任务,构建 index.html:
index: {
build: {
dir: '<%= build_dir %>',
src: [
'<%= build_dir %>/src/**/*.js'
]
}
}
因此,当我构建 index.html 时,我得到以下文件顺序:
<script type="text/javascript" src="src/app/home/modal/createTemplate/createTemplate.js"></script>
<script type="text/javascript" src="src/app/home/modal/modal.js"></script>
什么导致错误模块'modal'不可用!您要么拼错了模块名称,要么忘记加载它。如果注册模块,请确保将依赖项指定为第二个参数。,因为模块的声明是在调用它之后发生的。
那么,我应该如何编辑 gruntfile 以不按字母顺序添加文件,而是按广度优先搜索的顺序添加文件?
最好使用单独的文件来定义模块,并像 'modal-module.js' 那样调用它。之后,您可以使用以下参数轻松地首先注入模块文件:
index: {
build: {
dir: '<%= build_dir %>',
src: [
'<%= build_dir %>/app/app.js',
'<%= build_dir %>/app/**/*module.js',
'<%= build_dir %>/app/**/*constants.js',
'<%= build_dir %>/app/**/*provider.js',
'<%= build_dir %>/app/**/*enum.js',
'<%= build_dir %>/app/**/*model.js',
'<%= build_dir %>/app/**/*config.js',
'<%= build_dir %>/app/**/*filter.js',
'<%= build_dir %>/app/**/*directive.js',
'<%= build_dir %>/app/**/*decorator.js',
'<%= build_dir %>/app/**/*interceptor.js',
'<%= build_dir %>/app/**/*service.js',
'<%= build_dir %>/app/**/*workflow.js',
'<%= build_dir %>/app/**/*repository.js',
'<%= build_dir %>/app/**/*resolver.js',
'<%= build_dir %>/app/**/*controller.js'
]
}
}
我正在用 grunt 构建 angular 项目,假设我有以下结构:
-- app.js
-- modal
----createTemplate
------createTemplate.js
----modal.js
和createTemplate.js为模块实现控制器,在modal.js中声明,例如:
modal.js
angular.module('modal', [])
.controller('ModalInstanceCtrl', function($scope) {
//some stuff
});
createTemplate.js
angular.module('modal')
.controller('CreateTemplateCtrl', function($scope) {
//some stuff
});
我有 Grunt 任务,构建 index.html:
index: {
build: {
dir: '<%= build_dir %>',
src: [
'<%= build_dir %>/src/**/*.js'
]
}
}
因此,当我构建 index.html 时,我得到以下文件顺序:
<script type="text/javascript" src="src/app/home/modal/createTemplate/createTemplate.js"></script>
<script type="text/javascript" src="src/app/home/modal/modal.js"></script>
什么导致错误模块'modal'不可用!您要么拼错了模块名称,要么忘记加载它。如果注册模块,请确保将依赖项指定为第二个参数。,因为模块的声明是在调用它之后发生的。
那么,我应该如何编辑 gruntfile 以不按字母顺序添加文件,而是按广度优先搜索的顺序添加文件?
最好使用单独的文件来定义模块,并像 'modal-module.js' 那样调用它。之后,您可以使用以下参数轻松地首先注入模块文件:
index: {
build: {
dir: '<%= build_dir %>',
src: [
'<%= build_dir %>/app/app.js',
'<%= build_dir %>/app/**/*module.js',
'<%= build_dir %>/app/**/*constants.js',
'<%= build_dir %>/app/**/*provider.js',
'<%= build_dir %>/app/**/*enum.js',
'<%= build_dir %>/app/**/*model.js',
'<%= build_dir %>/app/**/*config.js',
'<%= build_dir %>/app/**/*filter.js',
'<%= build_dir %>/app/**/*directive.js',
'<%= build_dir %>/app/**/*decorator.js',
'<%= build_dir %>/app/**/*interceptor.js',
'<%= build_dir %>/app/**/*service.js',
'<%= build_dir %>/app/**/*workflow.js',
'<%= build_dir %>/app/**/*repository.js',
'<%= build_dir %>/app/**/*resolver.js',
'<%= build_dir %>/app/**/*controller.js'
]
}
}