我正在尝试使用gulp向我的html中注入时间戳记。我正在使用Angular7。此时间戳记应该是动态的,并且会根据每次构建进行更改。目前,我有:
timestamp.js
var gulp = require('gulp');
var replace = require('gulp-replace');
var d = new Date();
console.log(d.toString());
var string = d.toString();
gulp.src('src/app/shared/footer/*.html')
.pipe(replace('GULPTIMESTAMP',string))
.pipe(gulp.dest('src/app/shared/footer/'));
这将获取页脚文件夹中的所有html文件(这只是一个html文件),并将GULPTIMESTAMP的所有实例替换为当前时间戳。但是,我的问题是,一旦替换了它,我就无法再次运行timestamp.js文件,因为GULPTIMESTAMP已被当前时间戳替换。有没有办法在我的html中有一个{{timestamp}}变量,它会根据每次构建开始而动态更改?
考虑一下,也许我可以在打字稿文件而不是HTML中进行更改?只是一个想法
编辑:决定编辑打字稿文件比直接编辑HTML更好。
打字稿
timestampBuild: any;
constructor() { }
ngOnInit() {
this.timestampBuild = 'GULPTIMESTAMP'
}
HTML:
<div style="color:red">Last Build Timestamp: {{timestampBuild}} </div>
运行脚本后,ts文件中的GULPTIMESTAMP应该更改为当前时间戳。但是我遇到了同样的问题,我只想要一个动态名称。
答案 0 :(得分:0)
您可以搜索并在之后插入时间戳,而不是直接替换关键字(GULPTIMESTAMP
)。然后,您可以再次重新运行脚本,并始终插入当前时间戳。添加一个占位符和固定长度,以便能够正确替换旧时间戳。
另一种选择是对任务使用gulp-inject-string:https://www.npmjs.com/package/gulp-inject-string
这些示例应该为您提供足够的提示来完成任务。