我有一个gulp任务,试图将.scss文件转换为.css文件(使用gulp-ruby-sass),然后将生成的.css文件放在它找到原始文件的同一个地方.问题是,因为我使用的是通配模式,所以我不一定知道原始文件的存储位置.
在下面的代码中,我试图使用gulp-tap来点击流并找出当前文件的文件路径,从中读取流:
gulp.task('convertSass', function() {
var fileLocation = "";
gulp.src("sass/**/*.scss")
.pipe(sass())
.pipe(tap(function(file,t){
fileLocation = path.dirname(file.path);
console.log(fileLocation);
}))
.pipe(gulp.dest(fileLocation));
});
Run Code Online (Sandbox Code Playgroud)
根据输出console.log(fileLocation),这段代码看起来应该可以正常工作.但是,生成的CSS文件似乎放在一个比我预期的更高的目录中.它应该在哪里project/sass/partials,结果文件路径就是project/partials.
如果有一个更简单的方法,我肯定会更加欣赏这个解决方案.谢谢!
我目前正在重构一个项目,以前所有缩小的JavaScript文件都放在一个特定的目录中.现在我需要将缩小版本保留在与其源文件相同的目录中.
目前我这样做:
gulp.task( 'scripts', function () {
return gulp.src( source_paths.scripts )
.pipe( uglify( {
preserveComments: 'false'
} ) )
.pipe( rename( {suffix: ".min"} ) )
.pipe( gulp.dest( './build/js' ) )
.pipe( notify( {
message: 'Scripts task complete!',
onLast : true
} ) );
} );
Run Code Online (Sandbox Code Playgroud)
这有效,除了它移动我的文件.我试图改变我的使用gulp.dest()来.pipe( gulp.dest( '' ) )以及刚刚删除该行.在这两种情况下都没有编写缩小的JS,我非常难过.
如何将所有文件写入与源文件相同的目录?