我有以下 gulp 任务,我想更改文件的文件名和内容,以替换任何匹配的字符串。
文件内容中的匹配字符串发生更改,但文件名不变。我认为它会,因为我的代码似乎与 https://www.npmjs.com/package/gulp-replace 上的示例匹配
我做错了什么?
function renameFileContents() {
return gulp.src([
'**/*',
'!.github/**',
'!languages/**',
'!node_modules/**',
'!.babelrc',
'!.editconfig',
'!.gitignore',
'!.travis.yml',
'!CHANGELOG.md',
'!codesniffer.ruleset.xml',
'!composer.json',
'!composer.lock',
'!config.yml',
'!config-default.yml',
'!gulpfile.babel.js',
'!MIT-LICENSE.txt',
'!package-lock.json',
'!package.json',
'!phpunit.xml.dist',
'!README.md',
'!webpack.config.js'
])
.pipe($.replace('BigTest', 'Tester'))
.pipe($.replace('Bigtest', 'Tester'))
.pipe($.replace('bigtest', 'tester'))
.pipe(gulp.dest('./'));
}
最佳答案
使用gulp-rename
来更改文件名。添加:
const rename = require('gulp-rename');
以及 .pipe(gulp.dest('./'));
之前:
.pipe(
rename(function(path) {
path.basename = path.basename.replace(/BigTest|Bigtest|bigtest/, function(matched) {
return { BigTest: 'Tester', Bigtest: 'Tester', bigtest: 'tester' }[matched];
});
})
)
关于javascript - Gulp 替换不是重命名文件,而是替换文件内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57921879/