Gulp 如何有条件地删除生成的javascript文件?
我正在使用Intellij,默认情况下,Intellij将typescript文件传输到与typescript源相同的目录中的js文件中(因此传输foo.ts会生成foo.js)。然而,我也有一些javascript文件,它们是我不想无意中删除的源文件(不是从typescript生成的) 示例:Gulp 如何有条件地删除生成的javascript文件?,gulp,Gulp,我正在使用Intellij,默认情况下,Intellij将typescript文件传输到与typescript源相同的目录中的js文件中(因此传输foo.ts会生成foo.js)。然而,我也有一些javascript文件,它们是我不想无意中删除的源文件(不是从typescript生成的) 示例: someDir\foo.ts // original ts source file someDir\foo.js // generated by inte
someDir\foo.ts // original ts source file
someDir\foo.js // generated by intellij tsc compile, should be deleted
someDir\bar.js // original js sourcefile, should NOTbe deleted!
问题:我想删除所有具有匹配**/*.ts文件的**/*.js文件-在上面的示例中,我想删除foo.js(因为它具有相应的foo.ts),但不删除bar.js。是否有一些gulp.src模式可以用来指定“所有具有匹配**/*.ts文件的**/*.js文件”?如果是这样,我可以将结果src流通过管道传输到del 谢谢,
布拉德 p、 我知道我可以做一些高级Intellij typescript配置来移动生成的js文件的位置,但我更愿意在默认位置使用它们。另一种解决方法是在源代码流中显式排除“source js”文件(使用!),但我更愿意使用模式,因为它不那么脆弱。这应该可以:
var gulp = require('gulp');
var del = require('del');
var glob = require('glob');
var filter = function(file) {
return file.replace(/.ts$/, '.js');
};
gulp.task('default', function() {
return glob('./app/**/*.ts', function(err, files) {
del(files.map(filter));
})
});
基本上,您可以使用glob
获取所有.ts
文件,当您拥有这些文件时,将生成的数组映射到筛选函数。此函数将文件末尾出现的所有.ts
替换为.js
,您将得到一个新数组,并返回这些条目。最后,将新的glob传递给del
这应该可以:
var gulp = require('gulp');
var del = require('del');
var glob = require('glob');
var filter = function(file) {
return file.replace(/.ts$/, '.js');
};
gulp.task('default', function() {
return glob('./app/**/*.ts', function(err, files) {
del(files.map(filter));
})
});
基本上,您可以使用
glob
获取所有.ts
文件,当您拥有这些文件时,将生成的数组映射到筛选函数。此函数将文件末尾出现的所有.ts
替换为.js
,您将得到一个新数组,并返回这些条目。最后,将新的globs传递给del
我已经用批处理文件解决了这个问题。这是我的方法:
删除传输的.bat
我用批处理文件解决了这个问题。这是我的方法: 删除传输的.bat 不客气:-)如果它被证明是正确的,请为将来偶然发现它的人将我的答案标记为正确:-)不客气:-)如果它被证明是正确的,请为将来偶然发现它的人将我的答案标记为正确:-)