2014-06-24 3 views
0

aide grognement ts sur mon projet, voici mon Gruntfile:Comment configurer l'amdloader dans grunt-ts?

module.exports = function(grunt) { 
    grunt.initConfig({ 
    pkg: grunt.file.readJSON('package.json'), 
    ts: { 
     build: { 
     src: ['ts-src/**/*.ts'], 
     //compile using the requirejs module style 
     module: 'amd', 
     //write generated files to ts-out directory 
     outDir: '../js/ts-out', 
     amdloader: 'loader.js', 
     //generate a reference file 
     reference: 'reference.ts', 
     //generate .d.ts files 
     declaration: true, 
     options: { 
      comments: true, //preserves comments 
      target: 'es5' //emit ECMAScript5 JS 
     } 
     } 
    }, 
    watch: { 
     files: ['<%= ts.build.src %>'], 
     tasks: ['ts'] 
    } 
    }); 

    grunt.loadNpmTasks('grunt-contrib-watch'); 
    grunt.loadNpmTasks('grunt-ts'); 
    grunt.registerTask('default', ['watch']); 
} 

Ce « fonctionne », mais il génère un fichier loader.js qui prepends correctement la valeur outDir sur les entrées dans le fichier. Cela entraîne deux fois un chemin pour chaque fichier contenant js/ts-out.

Est-ce que l'option amdloader a des options de configuration, où je peux surcharger cela?

Répondre

1

Je soupçonne que ce devrait être:

outDir: '../js/ts-out', 
    amdloader: '../js/ts-out/loader.js', 

Voir: https://github.com/grunt-ts/grunt-ts/blob/master/Gruntfile.js#L101-L117 i.e. .:

 amdloadersrc: { 
      test: true, 
      src: ['test/amdloader/ts/app/**/*.ts'], 
      html: ['test/amdloader/ts/app/**/*.html'], 
      reference: 'test/amdloader/ts/app/reference.ts', 
      outDir: 'test/amdloader/js/app', 
      amdloader: 'test/amdloader/js/app/loader.js', 
      // watch: 'test/amdloader/app' 
     }, 
     amdloadertest: { 
      test: true, 
      src: ['test/amdloader/ts/test/**/*.ts'], 
      html: ['test/amdloader/ts/test/**/*.html'], 
      reference: 'test/amdloader/ts/test/reference.ts', 
      outDir: 'test/amdloader/js/test', 
      amdloader: 'test/amdloader/js/test/loader.js', 
     }, 

amdloader prend un chemin absolu à l'emplacement JS généré

+0

Merci à. Cela prend soin de fournir les chemins corrects aux fichiers référencés dans loader.js. Je souhaite que je pourrais avoir loader.js dans un endroit différent. Mais, je peux réparer cela avec quelques tâches plus grunt ... – stackleit