         module: "commonjs"
         emitDecoratorMetadata: true
         sourceMap: true
+        sourceRoot: 'app'
         removeComments: false
         verbose: true
       default:
         expand: true
         cwd: 'app/'
-        src: ['javascripts/*.ts']
-        dest: '_public/'
+        src: ['**/*.ts']
+        dest: 'public/'
 
     coffee:
       default:
         expand: true
         ext: '.js'
         cwd: 'app/'
-        src: ['javascripts/*.coffee']
-        dest: '_public/'
+        src: ['**/*.coffee']
+        dest: 'public/'
 
     jade:
       options:

        ]
      default:
        src: ['app/stylesheets/app.styl']
        dest: '_public/static/stylesheets/app.css'

    copy:
      # The native applicaton JavaScript files.
      js:
        expand: true
        cwd: 'app/'
        src: ['javascripts/*.js']
        dest: '_public/'

      # The applicaton TypeScript files.
      ts:
        expand: true
        cwd: 'app/'
        src: ['javascripts/*.ts']
        dest: '_public/'

      # The images and icons.
      static:
        expand: true
        src: ['static/**']
        dest: '_public/'

      # Note: this task is only used to copy CSS map files. The
      # CSS style files themselves are copied to the destination

    exec:
      # Convert CommonJS modules to AMD.
      convert:
        command: './node_modules/.bin/r.js -convert _build/commonjs public/lib'

      # This task is used in preference to grunt-selenium-standalone to
      # suppress extraneous console messages and wait for the server to
      # start.
      selenium:
        # If selenium is not already running, then start it. Suppress all
        # output, since there are no documented options to tailor the
