2

すべての angulara テンプレートを単一の js ファイルにコンパイルしようとしています。emberがember-cliで行うことのようなもの。

そのため、すべてのjavascriptファイルを縮小して連結することに成功しました。vendor.js と application.js の 2 つのファイルと、templates.js に詰め込みたいテンプレート ファイルがたくさんあります。

どうすればいいですか?誰かが段階的な説明をしてくれるなら、お願いします。リンクも歓迎します。驚くべきことに、これに関する情報はどこにもありません。

私は mimosa をビルド ツールとして使用していますが、これが最も簡単に思えました。ここに私のミモザの設定があります:

exports.config = {
  modules: [
  "copy",
  "stylus",
  "minify-css",
  "minify-js",
  "combine",
  "htmlclean",
  "html-templates"
  ],
  watch: {
    sourceDir: "app",
    compiledDir: "public",
    javascriptDir: "js",
    exclude: [/[/\\](\.|~)[^/\\]+$/]
  },
  vendor: {
    javascripts: "vendor/js"
  },
  stylus: {
    sourceMap: false
  },
  combine: {
    folders: [
    {
      folder:"vendor/js",
      output:"vendor.js",
      order: [
      "angular.js"
      ]
    },
    {
      folder:"js",
      output:"main.js",
      order: [
      "application/main.js"
      ]
    }
    ]
  },
  htmlclean: {
    extensions:["html"]
  },
  htmlTemplates: {
    extensions: ["tpl"]
  },
  template: {
    outputFileName: "templates"
  }
}

エラーなしで templates.js ファイルを生成します。しかし、リンクすると、Angular が大量のエラーを吐き出します。

コンパイルしたら、実際にこれらのテンプレートを ng-include およびルート プロバイダーから呼び出すにはどうすればよいですか? 私の場合、テンプレートの元のファイル名から派生したIDを使用してスクリプトテンプレートを呼び出すのと同じだと思いますよね?多分私はいくつかの重要なステップを逃しています。

ここでは、ビルド ツールは重要ではありませんが、望ましいものです。ビルドツールなしで手動で行う方法を誰かが示すことができれば、残りを理解するでしょう。

ありがとう。

4

1 に答える 1

5

私はビルド ツールとして Gulp を使用しています。その中には、プラグインgulp-angular-templatecacheがあり、モジュールのすべてのテンプレートをコンパイルして angular $templateCache に登録します。呼び出しコードを変更する必要はありません。これらを使用します。EDIT : $templateCache の Angular ドキュメントでは、templateCache の仕組みについて説明しています。

gulp-angular-templatecache のドキュメントを読んで、ビルド プロセスで機能するものを crib できるかどうかを確認するために $templateCache を事前設定する方法を確認することをお勧めします。

仕事をする私のgulpタスクは次のとおりです。

var templateCache = require('gulp-angular-templatecache');

gulp.task('buildjstemplates', function () {
  return gulp.src(['public/javascripts/app/**/*.html'])
  .pipe(templateCache({module: 'app'}))
  .pipe(gulp.dest('public/javascripts/app/'));
});
于 2015-06-08T16:43:13.067 に答える