gpt4 book ai didi

javascript - 如何使 gulp-rename 重命名具体的单个文件?

转载 作者:行者123 更新时间:2023-11-27 23:18:52 24 4
gpt4 key购买 nike

我从 LESS 文件生成 CSS,并希望为所有生成的 Bootstrap CSS 文件提供前缀“bootsrtap”,但不为 bootstrap.css 提供前缀。因此,我在编译后直接设置了前缀,但我所有进一步重命名的尝试都失败了。

var gulp = require('gulp'),
less = require('gulp-less'),
watch = require('gulp-watch'),
prefix = require('gulp-autoprefixer'),
plumber = require('gulp-plumber'),
filter = require('gulp-filter'),
rename = require('gulp-rename'),
path = require('path')
;

// ...

gulp.task('build-vendors', function() {
gulp.src(['./public/components/bootstrap/less/theme.less', './public/components/bootstrap/less/bootstrap.less']) // path to less file
.pipe(plumber())
.pipe(less())
.pipe(rename({prefix: 'bootstrap-'}))
.pipe(gulp.dest('./public/css')) // path to css directory
;
});

gulp.task('clean-up', function() {
// const bootstrapFileRenameFilter = filter(['*', 'bootstrap-bootstrap.css']);
gulp.src('./public/css/bootstrap-bootstrap.css')
.pipe(plumber())
// .pipe(bootstrapFileRenameFilter)
.pipe(rename({basename: 'bootstrap.css'}))
.pipe(gulp.dest('./public/css'))
;
});

gulp.task('watch', function() {
gulp.watch('public/less/*.less', ['build-less', 'build-vendors'])
});

// gulp.task('default', ['watch', 'build-less', 'build-vendors']);
gulp.task('default', ['build-less', 'build-vendors', 'clean-up']);

我的期望:

./public/css/bootstrap-theme.css
./public/css/bootstrap.css

我目前得到的:

./public/css/bootstrap-theme.css
./public/css/bootstrap-bootstrap.css

如何将单个文件从 a.foo 重命名为 b.bar

最佳答案

gulp-rename 接受函数作为参数来进行重命名。这允许您使用您喜欢的任何标准来定位特定文件进行重命名。对于您的情况:

gulp.task('build-vendors', function() {
gulp.src(['./public/components/bootstrap/less/theme.less',
'./public/components/bootstrap/less/bootstrap.less'])
.pipe(plumber())
.pipe(less())
.pipe(rename(function(path) {
//rename all files except 'bootstrap.css'
if (path.basename + path.extname !== 'bootstrap.css') {
path.basename = 'bootstrap-' + path.basename;
}
}))
.pipe(gulp.dest('./public/css'));
});

由于您现在只重命名那些您实际上想要具有 bootstrap- 前缀的文件,因此您不必事后清理困惑,只需删除整个 clean 全部任务。

关于javascript - 如何使 gulp-rename 重命名具体的单个文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35561773/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com