0

Grunt ビルドの一部として、いくつかの typescript コードをいくつかの個別のファイルに変換し、結果の JavaScript を残りのすべての JavaScript コードと連結します。残念ながら、grunt-concat と連携してファイル名を動的に構築することはできません。

これは、Gruntfile からの関連するスニペットgeneratedTypeScriptFilesです。動作しない の部分を参照してください。

var jsfiles = [
    'js/external_libraries/inherit.js',
    'js/external_libraries/modernizr.js',
    'js/baz.js'
];


grunt.initConfig({
  gitinfo : {}, //will be populated with values from Git
  options : {
    "packageName"         : nconf.get("name"),
    "frameworkVersion"    : nconf.get("version"),
    "frameworkOutputPath" : nconf.get("frameworkOutputPath"),
    "workerOutputPath"    : nconf.get("workerOutputPath"),
    "sourceMapPath"       : nconf.get("sourceMapPath")
  },

  typescript : {
    foo: {
      src     : ['js/Foo/*.ts'],
      dest    : 'generated/Foo.js',
    },
    bar : {
      src     : ['js/Bar/*.ts'],
      dest    : 'generated/Bar.js',
    }
  },

  generatedTypeScriptFiles : {
    all : function () {
      var tsf = [];
      for (var key in this.typescript) {
        if(this.typescript[key].dest) {
          tsf.push(this.typescript[key].dest);
        }
      }
      return tsf;
    }()
  },

  scriptfiles : {
    hybrid : function () {
      return jsfiles.concat('<%= generatedTypeScriptFiles.all %>');
    }(),
    web    : function () {
      return jsfiles.concat('<%= generatedTypeScriptFiles.all %>');
    }()
  }

  concat : {
    web    : {
      options : {
        separator : ';',
      },
      src     : '<%= scriptfiles.web %>',
      dest    : '<%= options.frameworkOutputPath %>'
    }
  }
}

タイプスクリプトのビルドステップで結果として得られるすべてのファイル名を実際に知っている私たちのケースでは、grunt.initConfig. それは問題を解決するはずですよね?それとも別の方法がありますか?

4

1 に答える 1