我是开发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,因为应用程序相当大而且只会遇到麻烦。谢谢! :)
答案 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; }