Eu tenho uma tarefa gulp que está tentando converter arquivos .scss em arquivos .css (usando gulp-ruby-sass) e, em seguida, coloco o arquivo .css resultante no mesmo lugar em que encontrou o arquivo original. O problema é que, como estou usando um padrão globbing, não sei necessariamente onde o arquivo original está armazenado.
No código abaixo, estou tentando usar o gulp-tap para acessar o fluxo e descobrir o caminho do arquivo atual do qual o fluxo foi lido:
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));
});
Com base na saída do console.log(fileLocation)
, este código parece que deve funcionar bem. No entanto, os arquivos CSS resultantes parecem ser colocados um diretório acima do que eu esperava. Onde deveria estar project/sass/partials
, o caminho do arquivo resultante é justo project/partials
.
Se houver uma maneira muito mais simples de fazer isso, eu definitivamente apreciaria essa solução ainda mais. Obrigado!
fonte
sass
pasta?gulp.src("dist/**/*")
...gulp.dest("./")
sass
. Talvez o plugin sass aqui já esteja modificando os caminhos?Isso é mais simples do que os números 1311407 acenderam. Você não precisa especificar a pasta de destino, simplesmente use
.
. Além disso, certifique-se de definir o diretório base.fonte
./sass
, mas a pergunta especifica que a saída retém osass
dir, e é por isso que ele é repetido nodest
. Essa resposta obtém o mesmo resultado usando a opção básica, mas nenhuma das abordagens está errada.css
diretório ou similar, não desass
parasass
. Em tais casos, a resposta aceita é realmente mais simples do que esta alternativa.Resposta dada originalmente aqui: https://stackoverflow.com/a/29817916/3834540 .
Sei que este tópico é antigo, mas ainda aparece como o primeiro resultado no google, então achei melhor postar o link aqui.
fonte
dest
incorreto. Claro que as soluções fornecidas funcionam, mas fazer certo da primeira vez, simplesmente substituirdest('./')
pordest('./images')
, teria alcançado o mesmo resultado.Isso foi muito útil!
fonte