如何 gulp-regex-仅替换第一个匹配项?
How to gulp-regex-replace only the first match?
以下是 project.json 文件的内容。我想要替换第一次出现的 'version' 值。
{
"title": "Project Title",
"copyright": "Copyright Info",
"description": "Project Description",
"version": "1.0.0",
"buildOptions": {
"xmlDoc": true
},
"dependencies": {
"Microsoft.NETCore.App": {
"version": "1.0.1",
"type": "platform"
}
}
}
下面的代码使用 gulp-regex-replace 将所有出现的版本值更改为 1.0.1。
var targetVersion= "1.0.1";
gulp.task('replace', function () {
return gulp.src(['./src/**/project.json'])
.pipe(bom())
.pipe(replace({ regex: '\n\s\s\"version\"\:\s\"([0-9a-zA-Z.-]+)\"', replace: `${targetVersion}` }))
.pipe(gulp.dest('./src'));
});
如何让这段代码只替换第一次出现的版本值?
gulp-regex-replace
插件使用全局匹配:
https://github.com/mikrofusion/gulp-regex-replace/blob/master/index.js#L31
另一个类似的插件 gulp-replace 接受自定义正则表达式对象:
replace(/__your_pattern__/, targetVersion);
模式中没有g
修饰符,JS只会匹配第一个出现的地方。
以下是 project.json 文件的内容。我想要替换第一次出现的 'version' 值。
{
"title": "Project Title",
"copyright": "Copyright Info",
"description": "Project Description",
"version": "1.0.0",
"buildOptions": {
"xmlDoc": true
},
"dependencies": {
"Microsoft.NETCore.App": {
"version": "1.0.1",
"type": "platform"
}
}
}
下面的代码使用 gulp-regex-replace 将所有出现的版本值更改为 1.0.1。
var targetVersion= "1.0.1";
gulp.task('replace', function () {
return gulp.src(['./src/**/project.json'])
.pipe(bom())
.pipe(replace({ regex: '\n\s\s\"version\"\:\s\"([0-9a-zA-Z.-]+)\"', replace: `${targetVersion}` }))
.pipe(gulp.dest('./src'));
});
如何让这段代码只替换第一次出现的版本值?
gulp-regex-replace
插件使用全局匹配:
https://github.com/mikrofusion/gulp-regex-replace/blob/master/index.js#L31
另一个类似的插件 gulp-replace 接受自定义正则表达式对象:
replace(/__your_pattern__/, targetVersion);
模式中没有g
修饰符,JS只会匹配第一个出现的地方。