Atualmente estou usando o gulp para chamar um script bash que limpa meu dist/
diretório e move os arquivos apropriados para o diretório limpo. Eu gostaria que isso fosse feito com gulp porque não tenho certeza se o script funcionaria em um sistema de arquivos não * nix.
Até agora, estou usando o módulo gulp-clean para limpar o dist/
diretório, mas quando tento mover os diretórios necessários e seus arquivos para a pasta dist, os diretórios estão vazios.
var gulp = require('gulp'),
clean = require('gulp-clean');
gulp.task('clean', function(){
return gulp.src(['dist/*'], {read:false})
.pipe(clean());
});
gulp.task('move',['clean'], function(){
gulp.src(['_locales', 'icons', 'src/page_action', 'manifest.json'])
.pipe(gulp.dest('dist'));
});
gulp.task('dist', ['move']);
a chamada gulp dist
resulta no dist/
diretório sendo preenchido com os diretórios corretos, mas estão todos vazios
$ ls dist/*
dist/manifest.json
dist/_locales:
dist/icons:
dist/page_action:
Como copio os diretórios e seu conteúdo para a dist/
pasta?
read
opção src definida comofalse
(é definida comotrue
por padrão).A questão original visa apenas diretórios (também conhecidas como pastas) em seu
gulp.src
, ou sejagulp.src(['_locales', ...
, neste exemplo,_locales
é o nome de um diretório .A resposta aceita usa um
glob
padrão em seus arquivos degulp.src
destino em qualquer lugar desses diretórios, ou seja , (observe os asteriscos duplos e os asteriscos nome_do_arquivo.extensão ). A resposta aceita funciona ...gulp.src(['./_locales/**/*.*', ...
... mas a resposta aceita apenas enfatiza a
base
opção :Eu experimentei e descobri:
A rigor, não é necessário usar a
base
opção para obter o que o OP pediu: "... e mover os arquivos apropriados para o diretório limpo." Abase
opção que , de fato preservar o arquivo de pasta + estrutura (como descrito na resposta aceita), mas abase
opção é não suficiente para mover os arquivos como o OP perguntou . Preservar a estrutura de pastas + arquivos é provavelmente o que o OP espera , então a resposta aceita é boa, mas ...Apenas para reiterar o que move os arquivos, são os
glob
padrões:Asterisco duplo (
.../**/...
) pesquisa recursivamente em todas as subpastas e subpastas 'subpastas', etc.Filename.extension asterisks (
.../*.*
) encontra arquivos com todos os nomes e todas as extensões . Então eu acho que essa parte merece mais ênfase!A resposta aceita muda outra coisa; adiciona um prefixo de
./
a cada caminho que os argumentos são passadosgulp.src
. Acho que isso é desnecessário / redundante; se não houver./
, (como na questão OP), os caminhos são resolvidos em relação ao diretório atual - resultando no mesmo comportamento . Mas talvez seja uma boa prática ser explícito com o./
Me avise se eu estiver enganado ...
fonte