27

concat을 사용하여 JS 파일을 하나의 파일로 병합하고 JavaScript를 최소화하기 위해 uglify를 사용합니다. 소스 JS 파일을 사용하는 소스 맵 파일을 만들려면 어떻게해야합니까?Grunt concat + sourcegaps와 uglify

나의 현재 gruntfile 다음 grunt-contrib-uglify 문서 당

concat: { 
    options: { 
     // define a string to put between each file in the concatenated output 
     separator: ';' 
    }, 
    dist: { 
     // the files to concatenate 
     src: ['<%= config.src %>/js/**/*.js'], 
     // the location of the resulting JS file 
     dest: '<%= config.dist %>/js/main.js' 
    } 
}, 

uglify: { 
    dist: { 
     files: { 
      '<%= config.dist %>/js/main.min.js': ['<%= concat.dist.dest %>'] 
     } 
    } 
}, 

답변

48

을, 당신은 추하게 작업에 대한 sourceMapIn 옵션을 지정해야합니다.

다음은 샘플 툴툴 거리는 소리의 설정입니다 :

concat : { 
    options : { 
    sourceMap :true 
    }, 
    dist : { 
    src : ['www/js/**/*.js'], 
    dest : '.tmp/main.js' 
    } 
}, 
uglify : { 
    options : { 
    sourceMap : true, 
    sourceMapIncludeSources : true, 
    sourceMapIn : '.tmp/main.js.map' 
    }, 
    dist : { 
    src : '<%= concat.dist.dest %>', 
    dest : 'www/main.min.js' 
    } 
} 
난 단지 추하게 사용한다면 노력
+0

이 답변은 비슷한 요구 사항을 해결하는 데 도움이되었습니다. (uglify 소스를 매핑하여 소스가 개별 요구 모듈을 필요로 함). 감사! – jerome

+1

축소 된 js를 사용할 때 마지막 줄의 번호가 잘못되었다는 점을 제외하면이 기능은 저에게 효과적입니다 (크롬 콘솔은 예를 들어 290 줄 대신 오류 320 줄을 가리 킵니다). 왜 이런 일이 발생하는지 알고 있습니까? – Y0lk

+1

필자의 경우 소스 맵이 생성되었지만 사용할 수 없습니다. 중단 점을 설정하면 코드가 멈추지 않습니다. 아직 해결되지 않은 uglifyjs의 일반적인 문제처럼 보입니다. – migg

-1

, 당신은 추하게 프로세스의 일부로 sourcemap 생성 할 수 있습니다.

귀하의 추하게 설정 같은 것을 보일 것이다 : 당신은 모두 concatuglify 작업에 대한 소스지도를 활성화해야

uglify: { 
     dist: { 
      files: { 
       '<%= config.dist %>/js/main.min.js': ['<%= concat.dist.dest %>'] 
      }, 
      options: { 
       sourceMap: true 
     } 
    }, 
+1

,하지만 난 추하게 및 CONCAT 모두 사용하고 있습니다. – user3483982

관련 문제