gulp 重命名考虑 .min.js 作为扩展名
gulp rename consider .min.js as the extension
在 gulp 任务中,我想包含一个 javascript 文件并在文件名中插入版本。
基本上,在我的任务中,我想复制:
./node_modules/bootstrap-sass/assets/javascripts/bootstrap.js
到 ./dist/js/bootstrap.3.3.7.js
./node_modules/bootstrap-sass/assets/javascripts/bootstrap.min.js
到 ./dist/js/bootstrap.3.3.7.min.js
我定义了这个任务:
var gulp = require('gulp');
var rename = require('gulp-rename');
var bsInfo = require('./node_modules/bootstrap-sass/package.json');
...
gulp.task('assets:js', function () {
return gulp.src(['./node_modules/bootstrap-sass/assets/javascripts/bootstrap.js', './node_modules/bootstrap-sass/assets/javascripts/bootstrap.min.js'])
.pipe(rename(function (path) { path.basename += "." + bsInfo.version; }))
.pipe(gulp.dest('./dist/js'));
});
然而,生成的文件名是:
- bootstrap.3.3.7.js(正确)
- bootstrap.min.3.3.7.js(不正确,min在版本号前).
如何编写我的任务以输出正确的文件名?
为您的重命名管道试试这个:
.pipe(rename(function (file) {
if (file.basename.endsWith(".min")) {
file.basename = file.basename.slice(0, -4) + "." + bsInfo.version + ".min";
}
else {
file.basename += "." + bsInfo.version;
}
}))
在 gulp 任务中,我想包含一个 javascript 文件并在文件名中插入版本。
基本上,在我的任务中,我想复制:
./node_modules/bootstrap-sass/assets/javascripts/bootstrap.js
到./dist/js/bootstrap.3.3.7.js
./node_modules/bootstrap-sass/assets/javascripts/bootstrap.min.js
到./dist/js/bootstrap.3.3.7.min.js
我定义了这个任务:
var gulp = require('gulp');
var rename = require('gulp-rename');
var bsInfo = require('./node_modules/bootstrap-sass/package.json');
...
gulp.task('assets:js', function () {
return gulp.src(['./node_modules/bootstrap-sass/assets/javascripts/bootstrap.js', './node_modules/bootstrap-sass/assets/javascripts/bootstrap.min.js'])
.pipe(rename(function (path) { path.basename += "." + bsInfo.version; }))
.pipe(gulp.dest('./dist/js'));
});
然而,生成的文件名是:
- bootstrap.3.3.7.js(正确)
- bootstrap.min.3.3.7.js(不正确,min在版本号前).
如何编写我的任务以输出正确的文件名?
为您的重命名管道试试这个:
.pipe(rename(function (file) {
if (file.basename.endsWith(".min")) {
file.basename = file.basename.slice(0, -4) + "." + bsInfo.version + ".min";
}
else {
file.basename += "." + bsInfo.version;
}
}))