Estou tentando usar o Gulp para:
- Pegue 3 arquivos javascript específicos, concatene-os e salve o resultado em um arquivo (concat.js)
- Pegue esse arquivo concatenado e faça o uglify / minify, depois salve o resultado em outro arquivo (uglify.js)
Eu tenho o seguinte código até agora
var gulp = require('gulp'),
gp_concat = require('gulp-concat'),
gp_uglify = require('gulp-uglify');
gulp.task('js-fef', function(){
return gulp.src(['file1.js', 'file2.js', 'file3.js'])
.pipe(gp_concat('concat.js'))
.pipe(gp_uglify())
.pipe(gulp.dest('js'));
});
gulp.task('default', ['js-fef'], function(){});
No entanto, a operação uglify parece não estar funcionando ou o arquivo não é gerado por algum motivo.
O que preciso fazer para que isso aconteça?
Respostas:
Acontece que eu precisava usar
gulp-rename
e também gerar o arquivo concatenado antes da 'uglificação'. Aqui está o código:Vir
grunt
disso foi um pouco confuso no começo, mas agora faz sentido. Espero que ajude osgulp
noobs.E, se você precisar de mapas de origem, aqui está o código atualizado:
Veja gulp-sourcemaps para mais informações sobre opções e configuração.
fonte
gulp.task
deve ser:.pipe(gp_concat('concat.js'))
Meu arquivo gulp produz um compilado-pacote-min.js final, espero que isso ajude alguém.
fonte
Solução usando
gulp-uglify
,gulp-concat
egulp-sourcemaps
. Isso é de um projeto no qual estou trabalhando.Isso combina e compacta todos os seus
scripts
arquivos e os coloca em um arquivo chamadoall_the_things.js
. O arquivo terminará com uma linha especialO que instrui o navegador a procurar esse arquivo de mapa, que também é gravado.
fonte
Sua solução não funciona porque você precisa salvar o arquivo após o processo de concat, uglificar e salvar novamente. Você não precisa renomear o arquivo entre concat e uglify.
fonte
10/06/2015: Nota do autor de
gulp-uglifyjs
:18 de fevereiro de 2015:
gulp-uglify
egulp-concat
ambos funcionam bemgulp-sourcemaps
agora. Apenas certifique-se de definir anewLine
opção corretamente paragulp-concat
; Eu recomendo\n;
.Resposta original (dez de 2014): Use gulp-uglifyjs .
gulp-concat
não é necessariamente seguro; ele precisa lidar com ponto e vírgula à direita corretamente.gulp-uglify
também não suporta mapas de origem. Aqui está um trecho de um projeto no qual estou trabalhando:fonte
gulp-concat
não (gulp-uglify
não permitirá que você reduza vários arquivos para que você precise concatenar primeiro). Além disso,gulp-concat
usa um\r\n
por padrão, o que poderia causar problemas se os arquivos JS não terminarem corretamente. Mas sim, agora que há suporte, provavelmente é melhor seguir esse caminho, pois é mais flexível.estamos usando a configuração abaixo para fazer algo semelhante
O arquivo GulpDS de amostra está abaixo:
fonte