2013-04-02 52 views
10

我在ts目錄下有4個TypeScript文件。我可以使用typescript:base任務將它們全部編譯成一個具有源映射(main.js.map)的文件(main.js)。使用uglify將JavaScript打印到JavaScript

但是,在編譯多個 TypeScript文件時,嘗試uglify這些文件不起作用。就好像uglifysourceMapIn由多個文件創建時變得困惑。

你會如何編譯打字稿項目與一個以上的文件,到一個文件中有sourcemap(回到原來的TS文件)

這裏是繁重的文件:

module.exports = function (grunt) { 
    grunt.initConfig({ 
     uglify: { 
      dist: { 
       options: { 
        sourceMap: '../js/main.min.map', 
        sourceMapIn: 'main.js.map', 
        sourceMapRoot: '../ts/' 
       }, 
       files: { 
        '../js/main.min.js': ['main.js'] 
       } 
      } 
     }, 
     typescript: { 
      base: { 
       src: ['**/*.ts'], 
       dest: '../js/main.js', 
       options: { 
        module: 'amd', 
        sourcemap: true, 
        declaration: false 
       } 
      } 

     } 
    }); 

    grunt.loadNpmTasks('grunt-contrib-uglify'); 
    grunt.loadNpmTasks('grunt-typescript'); 

    grunt.file.setBase('../ts'); 

    grunt.registerTask('default', ['typescript:base', 'uglify:dist']); 
}; 

謝謝!

回答

1

我試着用以下的環境中重現您的問題:

grunt: 0.4.1 
grunt-contrib-uglify: 0.2.2 
grunt-typescript: 0.2.4 
nodejs: 0.10.15 

我不得不改變uglify.dist.options.sourceMapIn'../js/main.js.map'uglify.dist.files['../js/main.min.js']['../js/main.js'],我。即使路徑相對於gruntfile位置。之後,編譯工作完美無缺,並且../js/main.min.js../js/main.min.map都看起來正確。