使用AngularJS调试或发布模式

使用AngularJS调试或发布模式,angularjs,gruntjs,Angularjs,Gruntjs,我有一个Angular应用程序,我正在使用Grunt,我为min、uglify和concat制作了Gruntfile,在我引用了我在main.html中用Grunt创建的新.js文件之后,当我发布我的项目时,一切都很好。但是,当我想做一些更改并想在调试模式下运行我的应用程序时,我必须在main.html中再次更改我的.js引用。有没有办法检查我的应用程序是否以什么模式运行,以便加载特定的.js文件? 我已经看到了如何在ASP.net中实现这一点,但在我的案例中如何解决它 下面是我的Grunfil

我有一个Angular应用程序,我正在使用Grunt,我为min、uglify和concat制作了Gruntfile,在我引用了我在main.html中用Grunt创建的新.js文件之后,当我发布我的项目时,一切都很好。但是,当我想做一些更改并想在调试模式下运行我的应用程序时,我必须在main.html中再次更改我的.js引用。有没有办法检查我的应用程序是否以什么模式运行,以便加载特定的.js文件? 我已经看到了如何在ASP.net中实现这一点,但在我的案例中如何解决它

下面是我的Grunfile.js

'use strict';

module.exports = function (grunt) {

grunt.initConfig({
  clean: {
    options: {force: true},
    all: {
        src: ['../Analaysis.UI/app_built/**/*.*']
    }
  },

  ngmin: {
    all: {
        files: [
            {
                expand: true,
                cwd: '../Analaysis.UI',
                src: ['**/*.js'
                    , '!**/Scripts/*'
                    , '!**/Scripts/**/*'
                    , '!**/obj/*'
                    , '!**/obj/**/*'
                    , '!**/src/**/**/*'],
                dest: '../Analaysis.UI/app_built/',
                ext: '.js'
            }
        ]
      }
  },

  uglify: {
    all: {
        files: [
            {
                expand: true,
                cwd: '../Analaysis.UI/app_built',
                src: ['**/*.js'],
                dest: '../Analaysis.UI/app_built/',
                ext: '.min.js'
            }
        ]
      }
  },

  concat: {
        js: {
            options: {
                separator: ';'
            },

                src: ['../Analaysis.UI/app_built/Global/global.min.js'
                    ,'../Analaysis.UI/app_built/Global/config.min.js'
                    ,'../Analaysis.UI/app_built/Global/GlobalService.min.js'
                    ,'../Analaysis.UI/app_built/Login/LoginController.min.js'
                    ,'../Analaysis.UI/app_built/Login/LoginService.min.js'],
                dest: '../Analaysis.UI/app_built/app_built_login.js'

     }
  }
 });

 grunt.registerTask("default", ['build']);
 grunt.registerTask('build', ['clean', 'ngmin', 'uglify', 'concat']);

 grunt.loadNpmTasks('grunt-contrib-clean'); 
 grunt.loadNpmTasks('grunt-ngmin');
 grunt.loadNpmTasks('grunt-contrib-uglify');
 grunt.loadNpmTasks('grunt-contrib-concat');
};

对于每种类型的构建,您都需要不同的配置

检查下面的代码

'use strict';

module.exports = function (grunt) {

 grunt.initConfig({
    uglify: {
        all: {
            files: [
                {
                    expand: true,
                    cwd: '../Analaysis.UI/app_built',
                    src: ['**/*.js'],
                    dest: '../Analaysis.UI/app_built/',
                    ext: '.min.js'
        }
    ]
        },
        prod: {
            files: [
                {
                    expand: true,
                    cwd: '../Analaysis.UI/app_built',
                    src: ['**/*.js'],
                    dest: 'prod/Analaysis.UI/app_built/',//You can have different path according to build type
                    ext: '.min.js'
        }
    ]
        }

    },

    concat: {
        js: {
            options: {
                separator: ';'
            },

            src: ['../Analaysis.UI/app_built/Global/global.min.js'
                , '../Analaysis.UI/app_built/Global/config.min.js'
                , '../Analaysis.UI/app_built/Global/GlobalService.min.js'
                , '../Analaysis.UI/app_built/Login/LoginController.min.js'
                , '../Analaysis.UI/app_built/Login/LoginService.min.js'],
            dest: '../Analaysis.UI/app_built/app_built_login.js'

        },
        prod: {
            options: {
                separator: ';'
            },

            src: ['../Analaysis.UI/app_built/Global/global.min.js'
                , '../Analaysis.UI/app_built/Global/config.min.js'
                , '../Analaysis.UI/app_built/Global/GlobalService.min.js'
                , '../Analaysis.UI/app_built/Login/LoginController.min.js'
                , '../Analaysis.UI/app_built/Login/LoginService.min.js'],
            dest: 'production/Analaysis.UI/app_built/app_built_login.js'

        }
    }
 });

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

//Task according to build. run "grunt debug" for debug build
grunt.registerTask('debug', ['uglify:all', 'concat:js']);
grunt.registerTask('prod', ['uglify:prod', 'concat:prod']);

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

将GrunFile与configuration@Akhlesh-你能给我一些例子或资源让我学到更多吗?你能展示你的Grunfile吗?这将有助于我给出一个合适的例子。我将在下面发布。这很好,我现在得到了这个部分但是在HTML中引用我的脚本呢?在调试或发布时,如何切换引用?例如,在调试中:“../analysis.UI/app\u builded/app\u builded\u login.js”,在发布中:“/production/analysis.UI/app\u builded/app\u builded\u login.js”,您需要编写自定义任务来读取html文件,并在html文件中编写更改受尊重的引用。要获得更多帮助,请参阅grunt文档和grunt api以读取和写入文件OK,我将尝试一下。非常感谢