Getting source maps working with evaluated code

I have a build script that runs all my code through uglifyjs, does a bunch of fancy caching stuff, and ultimately runs eval( code ) on some JavaScript files.

I'm trying to get this whole process up and running with source maps, but I can't seem to get it working as long as I'm using eval. If I link to the files directly using <script src="..."> it works fine.

In my eval code, I have:

code, blah blah blah
//@ sourceMappingURL=/cache/

and then in that .map file, I have:

      "version"  : 3
    , "file"     : ""
    , "sources"  : ["/js/Parallax-JS/js/parallax-2.js"]
    , "names"    : [
        , "bunch"
        , "of"
        , "variable"
        , "names"
    , "mappings" : "... LONG MAP ..."

I've tried putting //@ sourceURL= at the end instead, and that at least gives me the correct file name, but still no readable source.

Any ideas? Testing in Chrome 25 (dev) and 26 (canary)



I had a similar problem and the solution seem to be using an inlined SourceMaps (DataURL of a SourceMap).

Here is an example:

eval("blah blah\n//@ sourceMappingURL=data:application/json;base64,...");

Seems like you can't reference external resources from an eval.

I think you also need to use sourcesContent to insert the source code into the SourceMap.

Tested with Chrome 32.


Here is a setup using Grunt to compile javascript to single file using uglify with a source map


"src": {
    "js": "src/js"
"dest": {
    "js": "bin/js"


     * Loading in the package file to read source and destination directories
    pkg: grunt.file.readJSON('package.json'),
    uglify: {
    options: {
        banner: '/* all.min.js <%="dd-mm-yyyy") %> */\n',
        sourceMap: '<%= pkg.dest.js %>/',
        sourceMappingURL: '',
        sourceMapRoot: '../../',
        mangle: false
        /*mangle: {
            except: ['jQuery']
    js: {
        src: [
            '<%= pkg.src.js %>/**/*.js'
        dest: '<%= pkg.dest.js %>/all.min.js'

grunt.registerTask('min', ['uglify']);

Which creates the following files:


/* all.min.js 04-10-2013 */



Recent Questions

Top Questions

Home Tags Terms of Service Privacy Policy DMCA Contact Us

©2020 All rights reserved.