gulp-angular-templatecacheを使用して、すべての HTML テンプレート ファイルを 1 つに結合する templateCache.js ファイルを生成しています ( my full gulpfile )
その新しいモジュールをアプリに挿入すると、ディレクティブが自動的にテンプレートを取得するので、部分的な .html ファイルをビルド フォルダーに追加する必要はありません。
問題は、先頭のフォルダー パスが途切れていることです。以下の例を参照してください。
私のディレクティブのパス:
templateUrl : "panels/tags/tagsPanel.html"...
templateUrl : "header/platform_header/platformHeader.html"...
生成された templateCache ファイルのパス:
$templateCache.put("tags/tagsPanel.html"...
$templateCache.put("platform_header/platformHeader.html"...
^panels
そしてheader
迷子になっています。
Gulpfile でそれを修正する関数を作成しようとしています。
私のGulpfileの設定セクション:
var config = {
srcPartials:[
'app/beta/*.html',
'app/header/**/*.html',
'app/help/*.html',
'app/login/*.html',
'app/notificaitons/*.html',
'app/panels/**/*.html',
'app/popovers/**/*.html',
'app/popovers/*.html',
'app/user/*.html',
'app/dashboard.html'
],
srcPaths:[
'beta/',
'header/',
'help/',
'login/',
'notificaitons/',
'panels/',
'popovers/',
'popovers/',
'user/',
'dashboard.html'
],
destPartials: 'app/templates/'
};
私のhtml-templates
gulp.task
gulp.task('html-templates', function() {
return gulp.src(config.srcPartials)
.pipe(templateCache('templateCache.js', {
root: updateRoot(config.srcPaths)
},
{ module:'templateCache', standalone:true })
).pipe(gulp.dest(config.destPartials));
});
function updateRoot(paths) {
for (var i = 0; i < paths.length; i++) {
// console.log(paths);
console.log(paths[i]);
return paths[i];
}
}
^ gulp-angular-templatecacheのroot オプションを使用して、テンプレート パスの前に新しい文字列を追加するという点で、上記は機能しています。
問題は、上記のコードが一度返され、パス配列の最初の項目へのすべてのパスを更新することですbeta/
。
各ファイルのパスを正しく置き換えるには、これをどのように記述しますか?