2016-06-09 9 views
0

我正在用AngularJS构建一个项目,我希望使用Grunt和grunt-contrib-concat(或类似的东西)将所有角度组件连接到一个文件。如何使用AngularJS连接/ uglification而无需专门设置每个文件的顺序

AngularJS组件需要按顺序连接,以便带模块声明的文件位于引用这些模块的文件之前。

看起来像是,如果您在Grunt任务中指定每个单独的文件,它将使用它们指定的顺序。然而,我希望找到一个解决方案,让我配置规则,整个文件目录树的排序规则,所以我不需要指定单个文件。

理想情况下,我希望程序通过文件树并首先在树中加载更高的文件。然后,我可以使用这样的结构:

moduleFolder 
    -> controllerFolder 
     -> example.ctrl.js 
     -> exampleAlternate.ctrl.js 
    -> directiveFolder 
     -> example.directive.js 
    -> exampleModuleDeclaration.js 

任何人都可以建议如何这可能会来完成,或者做什么用串联是AngularJS的接受的方式?

回答

1

'use strict';

module.exports =函数(咕噜){

grunt.initConfig({ 
    distFolder: '../scripts', 
    pkg: grunt.file.readJSON('package.json'), 
    concat: { 
     options: { 
      separator: ';' 
     }, 
     scripts: { 
      src: [ 
       '../app.js', 
       '../controllers/*.js', 
       '../controllers/*/*.js', 
       '../services/*.js', 
       '../directives/*.js', 
       '../filters/*.js', 
       '../factories/*.js' 
      ], 
      dest: '<%= distFolder %>/file_name.js' 
     } 
    } 
}); 
grunt.loadNpmTasks('grunt-contrib-concat'); 
grunt.registerTask('default', ['concat']); 

};

试试这个,并记住文件夹结构。将其保存到脚本文件夹中

+0

哦。我认为这会奏效。我会尽快尝试并回复你。 –

+0

我使用了命名约定解决方案,而不是文件夹结构之一,但原理是一样的。谢谢。 –

相关问题