Gulp angular templatecache root问题

时间:2015-06-26 06:13:34

标签: angularjs gulp

我是开发AngularJS应用程序的团队的一员,现在我正在修改Gulp构建脚本。我的部分任务是预先填充模板缓存(到目前为止,我们一直在加载模板,因为路由/指令需要它们。)

Gulp任务基本上是:

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

gulp.task('cache-templates', function(){
    var dest = destinationPath,
        src = sourcePath;

    return gulp.src(src)
        .pipe(plumber())
        .pipe(templateCache('templates.js', {root: './templates/'}))
        .pipe(gulp.dest(dest));
});

我得到的问题是gulp删除" ./"从根。例如:

$templateCache.put("templates/foo.html","<div>some html</div>");

代替

$templateCache.put("./templates/foo.html","<div>some html</div>");

模块正确加载到app.js并声明为依赖项,如果我确实手动将&#34; ./"&#39;作为前缀,那么一切正常。那么请你告诉我如何强迫Gulp加入&#34; ./"我的根目录中的前缀?

注意:每个其他前缀都可以正常工作,只需删除&#34; ./"。如果我可以在Gulpfile中解决这个问题,我更喜欢它,而不必修改我的指令和$ routeProvider中的templateUrl,因为应用程序相当大而且只会遇到麻烦。谢谢! :)

1 个答案:

答案 0 :(得分:1)

您可以做的是使用gulp-replace并替换&#39; templates /&#39;使用&#39; ./ templates /&#39;。

旧答案

在传递给模板的选项中,您可以提供base功能

   .pipe(templateCache('templates.js', {root: './templates/', base: baseFn}))

你可以在那里修改文件路径

        var baseFn = function (file) { return './' + file.relative; }