1

使用 angularJS 很棒。虽然我看到一个问题,因为我有以下文件:

  • 应用程序.js
  • 控制器.js
  • 过滤器.js
  • 指令.js
  • 服务.js

这与实际的 AngularJS 库文件以及 jQuery 一起分配给服务器的 http 请求。

有没有办法将所有这些组合在一起用于生产环境?更重要的是,是否有特定的 AngularJS 推荐方法来做到这一点?

4

2 回答 2

3

如上所述,Grunt.js 项目能够执行任务命令,例如缩小和连接。对这些任务支持最广泛的两个 grunt.js 插件是:

  • 丑化(缩小)
  • Concat(文件连接)

以下是这些的示例任务脚本:

module.exports = function(grunt) {

  grunt.initConfig({
    concat: {
      options: {
        separator: ';'
      },
      dist: {
        src: ['assets/**/*.js'],
        dest: 'assets/js/<%= pkg.name %>.js'
      }
    },
    uglify: {
      options: {
        banner: '/*! <%= pkg.name %> <%= grunt.template.today("dd-mm-yyyy") %> */\n'
      },
      dist: {
        files: {
          'assets/js/<%= pkg.name %>.min.js': ['<%= concat.dist.dest %>']
        }
      }
    },
  });

  grunt.loadNpmTasks('grunt-contrib-uglify');
  grunt.loadNpmTasks('grunt-contrib-concat');

  grunt.registerTask('default', ['concat', 'uglify']);

};

我通常不回答我的 onw 问题,尽管我相信依靠服务器来编译、缓存和检查缓存版本不是要走的路。在生产环境中维护不必要的处理器和系统。

于 2013-07-04T11:42:20.800 回答
1

脚本的合并和缩小主要在服务器上完成。不同的技术\工具提供了不同的机制来支持这个特性。我不认为这是 AngularJS 的问题。

如果使用缩小,你唯一需要注意的是依赖注入可能会在 Angular 中中断。因此,这种形式的 DI 将是首选。

app.controller('myController',['dependency1',
    function(dependency1) {
    }
]);
于 2013-07-04T03:47:28.133 回答