2013-04-02 6 views
10

Ho 4 file TypeScript sotto la directory ts. Posso compilarli tutti in un unico file (main.js) con una mappa sorgente (main.js.map) usando l'attività typescript:base.Grunt a TypeScript su JavaScript con uglify

Tuttavia, provare a uglify quei file non funziona quando si compila più di un file TypeScript. È come se lo uglify si confondesse quando lo sourceMapIn è stato creato con più di un file.

Come si compilare un progetto tipografico con più di un file, in un unico file con un Sourcemap (Ritorno al file TS originali)

Ecco il file grugnito:

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

Grazie!

risposta

1

ho cercato di riprodurre il problema con il seguente ambiente:

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

ho dovuto cambiare uglify.dist.options.sourceMapIn-'../js/main.js.map' e uglify.dist.files['../js/main.min.js']-['../js/main.js'], i. e. rendere i percorsi relativi alla posizione del gruntfile. Successivamente, la compilazione ha funzionato perfettamente e sia ../js/main.min.js sia ../js/main.min.map sembrava corretto.