我在一个文件夹中有多个javascript文件,并且我想确保每个文件的开头都有注释(这将解释文件的摘要)。
/*
This file will......
*/
function test () {
....
}
那么用含漱口水或其他东西可以做到吗?
答案 0 :(得分:2)
我认为这足以确保文件的开头是否为注释的起始字符(/*
)
gulp.src('./file.js')
.pipe(map(function(file, callback) {
var startWithComment = file.contents.toString().replace(/\n|\r/g, "").trim().startsWith("/*");
if (startWithComment){
// DO YOUR CHORES
}
}))
另一种方法是分割初始文本,以确保它是有效的多行注释。
function startsWithValidMultiLineComment(str){
try{
return str.replace(/\n|\r/g, "").trim().split("/*")[1].split("*/")[1].length > 0
} catch (e){
return false;
}
}
遵循这种方法str.split("/*")[1].split("*/")[0]
将成为您的评论文本
答案 1 :(得分:1)
使用@Sajjad在上一个答案中提供的正则表达式。我设法实现了我的目标。我改用了gulp-if和gulp-fail(我发现它更灵活)。
这是我的操作方式:
var condition = function (file) {
sFile = require('path').parse(file.path).name;
var startWithComment = file.contents.toString().replace(/\n|\r/g, "").trim().startsWith("/*");
return (!startWithComment);
}
gulp.task('taskName',
function() {
gulp.src('files/*.js')
.pipe(gulpIf(condition, fail(function () {
var message = 'Some message';
return message;
})));
});