2013-04-02 7 views
10

Ich habe 4 TypeScript-Dateien unter dem ts Verzeichnis. Ich kann sie alle in eine Datei (main.js) mit einer Quellkarte (main.js.map) unter Verwendung der typescript:base Aufgabe kompilieren.Grunt ein TypeScript zu JavaScript mit Uglify

Allerdings versuchen uglify diese Dateien nicht funktioniert, wenn mehr als eine TypScript-Datei kompiliert wird. Es ist, als ob uglify verwirrt wird, wenn die sourceMapIn mit mehr als einer Datei erstellt wurde.

Wie würden Sie ein Typoskript Projekt mit mehr als einer Datei, in eine Datei mit einem sourcemap (Zurück zu den Original-ts-Dateien)

Hier sind die Grunzen-Datei kompilieren:

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']); 
}; 

Dank!

Antwort

1

Ich habe versucht, das Problem mit der folgenden Umgebung zu reproduzieren:

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

I uglify.dist.options.sourceMapIn-'../js/main.js.map' und uglify.dist.files['../js/main.min.js']-['../js/main.js'], mich ändern musste. e. Machen Sie die Pfade relativ zum Speicherort der Gruntdatei. Danach funktionierte die Kompilation einwandfrei und sowohl ../js/main.min.js als auch ../js/main.min.map sahen korrekt aus.