Note that there are some explanatory texts on larger screens.

plurals
  1. POEnabling debugging in gruntjs for Angular
    primarykey
    data
    text
    <p>Folks,</p> <p>I just started using grunt to compile my angular application. However what I noticed now is that my browser no longer gives me the location of the exact error in the exact file. </p> <p>What do I need to do in grunt to overcome this ?</p> <p>grunt.js posted below :</p> <pre><code>module.exports = function (grunt) { grunt.loadNpmTasks('grunt-contrib-concat'); grunt.loadNpmTasks('grunt-contrib-jshint'); grunt.loadNpmTasks('grunt-contrib-uglify'); grunt.loadNpmTasks('grunt-contrib-clean'); grunt.loadNpmTasks('grunt-contrib-copy'); grunt.loadNpmTasks('grunt-contrib-watch'); grunt.loadNpmTasks('grunt-recess'); grunt.loadNpmTasks('grunt-karma'); grunt.loadNpmTasks('grunt-html2js'); // Default task. grunt.registerTask('default', ['jshint','build','karma:unit']); grunt.registerTask('build', ['clean','html2js','concat','recess:build','copy:assets','copy:styleguide' ]); grunt.registerTask('release', ['clean','html2js','uglify','jshint','karma:unit','concat:index', 'recess:min','copy:assets','copy:styleguide']); grunt.registerTask('test-watch', ['karma:watch']); // Print a timestamp (useful for when watching) grunt.registerTask('timestamp', function() { grunt.log.subhead(Date()); }); var karmaConfig = function(configFile, customOptions) { var options = { configFile: configFile, keepalive: true }; var travisOptions = process.env.TRAVIS &amp;&amp; { browsers: ['Firefox'], reporters: 'dots' }; return grunt.util._.extend(options, customOptions, travisOptions); }; // Project configuration. grunt.initConfig({ distdir: 'dist', pkg: grunt.file.readJSON('package.json'), banner: '/*! &lt;%= pkg.title || pkg.name %&gt; - v&lt;%= pkg.version %&gt; - &lt;%= grunt.template.today("yyyy-mm-dd") %&gt;\n' + '&lt;%= pkg.homepage ? " * " + pkg.homepage + "\\n" : "" %&gt;' + ' * Copyright (c) &lt;%= grunt.template.today("yyyy") %&gt; &lt;%= pkg.author %&gt;;\n' + ' * Licensed &lt;%= _.pluck(pkg.licenses, "type").join(", ") %&gt;\n */\n', src: { js: ['src/**/*.js', '&lt;%= distdir %&gt;/templates/**/*.js'], specs: ['test/**/*.spec.js'], scenarios: ['test/**/*.scenario.js'], html: ['src/index.html'], tpl: { app: ['src/app/**/*.tpl.html'], common: ['src/common/**/*.tpl.html'] }, less: ['src/less/stylesheet.less'], // recess:build doesn't accept ** in its file patterns lessWatch: ['src/less/**/*.less'] }, clean: ['&lt;%= distdir %&gt;/*'], copy: { assets: { files: [ { dest: '&lt;%= distdir %&gt;', src : '**', expand: true, cwd: 'src/assets/' } ] }, styleguide: { files: [ { dest: '&lt;%= distdir %&gt;/style-guide', expand: true, src: '**', cwd: 'src/less/easyS/style-guide-v49634/fonts' }, { dest: '&lt;%= distdir %&gt;/style-guide', expand: true, src: '**', cwd: 'src/less/easyS/style-guide-v49634/images' } ] } }, karma: { unit: { options: karmaConfig('test/config/unit.js') }, watch: { options: karmaConfig('test/config/unit.js', { singleRun:false, autoWatch: true}) } }, html2js: { app: { options: { base: 'src/app' }, src: ['&lt;%= src.tpl.app %&gt;'], dest: '&lt;%= distdir %&gt;/templates/app.js', module: 'templates.app' }, common: { options: { base: 'src/common' }, src: ['&lt;%= src.tpl.common %&gt;'], dest: '&lt;%= distdir %&gt;/templates/common.js', module: 'templates.common' } }, concat:{ dist:{ options: { banner: "&lt;%= banner %&gt;" }, src:['&lt;%= src.js %&gt;'], dest:'&lt;%= distdir %&gt;/&lt;%= pkg.name %&gt;.js' }, index: { src: ['src/index.html'], dest: '&lt;%= distdir %&gt;/index.html', options: { process: true } }, angular: { src:['external/angular/angular.js','external/angular/angular-*.js'], dest: '&lt;%= distdir %&gt;/angular.js' }, bootstrap: { src:['external/angular-ui/bootstrap/*.js'], dest: '&lt;%= distdir %&gt;/bootstrap.js' }, jquery: { src:['external/jquery/*.js'], dest: '&lt;%= distdir %&gt;/jquery.js' } }, uglify: { dist:{ options: { banner: "&lt;%= banner %&gt;" }, src:['&lt;%= src.js %&gt;'], dest:'&lt;%= distdir %&gt;/&lt;%= pkg.name %&gt;.js' }, angular: { src:['&lt;%= concat.angular.src %&gt;'], dest: '&lt;%= distdir %&gt;/angular.js' }, bootstrap: { src:['external/angular-ui/bootstrap/*.js'], dest: '&lt;%= distdir %&gt;/bootstrap.js' }, jquery: { src:['external/jquery/*.js'], dest: '&lt;%= distdir %&gt;/jquery.js' } }, recess: { build: { files: { '&lt;%= distdir %&gt;/&lt;%= pkg.name %&gt;.css': ['&lt;%= src.less %&gt;'] }, options: { compile: true } }, min: { files: { '&lt;%= distdir %&gt;/&lt;%= pkg.name %&gt;.css': ['&lt;%= src.less %&gt;'] }, options: { compress: true } } }, watch:{ all: { files:['&lt;%= src.js %&gt;', '&lt;%= src.specs %&gt;', '&lt;%= src.lessWatch %&gt;', '&lt;%= src.tpl.app %&gt;', '&lt;%= src.tpl.common %&gt;', '&lt;%= src.html %&gt;'], tasks:['default','timestamp'] }, build: { files:['&lt;%= src.js %&gt;', '&lt;%= src.specs %&gt;', '&lt;%= src.lessWatch %&gt;', '&lt;%= src.tpl.app %&gt;', '&lt;%= src.tpl.common %&gt;', '&lt;%= src.html %&gt;'], tasks:['build','timestamp'] } }, jshint:{ files:['gruntFile.js', '&lt;%= src.js %&gt;', '&lt;%= src.specs %&gt;', '&lt;%= src.scenarios %&gt;'], options:{ curly:true, eqeqeq:true, immed:true, latedef:true, newcap:true, noarg:true, sub:true, boss:true, eqnull:true, globals:{} } } }); }; </code></pre>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload