2016-08-31 5 views
0

Ich möchte Aufgabe 'js' dauert .js (& nicht .min.js) Dateien im Verzeichnis, uglify & sie in das gleiche Verzeichnis mit dem Suffix: '.min', aber es doesn `t Arbeit mit vielen Dateien im Verzeichnis, meine Aufgabe:gulp-uglify funktioniert nicht

gulp.task('js', function(cb) { 
    pump([ 
      gulp.src(['js/*.js', '!js/*.min.js']), 
      uglify(), 
      rename({suffix: '.min'}), 
      gulp.dest('js/signup/' + pathDist) 
     ], 
      cb 
     ); 
}); 

& meine 'watch' Aufgabe:

gulp.task('watch', ['js'], function() { 
    gulp.watch(['js/*.js', '!js/*.min.js'], ['js']); 
}); 

gulpfile.js:

var gulp   = require('gulp'), // Подключаем Gulp 
    cssnano   = require('gulp-cssnano'), // Подключаем пакет для минификации CSS 
    concat   = require('gulp-concat'), // Подключаем gulp-concat (для конкатенации файлов) 
    rename   = require('gulp-rename'), // Подключаем библиотеку для переименования файлов 
    uglify   = require('gulp-uglifyjs'), // Подключаем gulp-uglifyjs (для сжатия JS) 
    del    = require('del'), // Подключаем библиотеку для удаления файлов и папок 
    imagemin  = require('gulp-imagemin'), // Подключаем библиотеку для работы с изображениями 
    pngquant  = require('imagemin-pngquant'), // Подключаем библиотеку для работы с png 
    autoprefixer = require('gulp-autoprefixer'), // Подключаем библиотеку для автоматического добавления префиксов 
    cache   = require('gulp-cache'), // Подключаем библиотеку кеширования 
    svgmin   = require('gulp-svgmin'), //Подключаем svgmin 
    open   = require('gulp-open'), // Подключаем библиотеку открытия файлов 
    bulkSass  = require('gulp-sass-bulk-import'), // импорт путей в Sass 
    pump   = require('pump'), 
    sass   = require('gulp-sass'); //Подключаем Sass пакет 

package.json:

"dependencies": { 
    "del": "^2.2.0", 
    "pump": "^1.0.1", 
    "gulp": "^3.9.1", 
    "gulp-autoprefixer": "^3.1.0", 
    "gulp-cache": "^0.4.5", 
    "gulp-concat": "^2.6.0", 
    "gulp-cssnano": "^2.1.2", 
    "gulp-imagemin": "^3.0.3", 
    "gulp-open": "^2.0.0", 
    "gulp-rename": "^1.2.2", 
    "gulp-sass": "^2.2.0", 
    "gulp-sass-bulk-import": "^1.0.1", 
    "gulp-svgmin": "^1.2.2", 
    "gulp-uglifyjs": "^0.6.2", 
    "imagemin-pngquant": "^5.0.0" 
    } 

Verzeichnis hat 5 Dateien Js, 5 Dateien .min.js & 1 .php; Aufgabe nimmt die erste Datei .js im Verzeichnis, damit arbeiten & stoppt ... Wie kann ich mit vielen Dateien im Verzeichnis arbeiten?

+0

Das erklärt nicht dein Problem, aber es gibt einen Fehler in deinem Glob: Um die .min.js Dateien auszuschließen, brauchst du '! Js/*. Min.js' ('! Js/.min.js 'wird nur Ausschließen einer Datei mit dem Titel ".min.js") – henry

+0

Einige Informationen fehlen hier: Haben Sie installiert und 'require'd Pumpe, gulp-uglify, und gulp-rename? Was meldet sich in der Konsole an? (wenn Pumpe funktioniert, sollte es Ihnen eine detaillierte Fehlermeldung geben) – henry

+0

Dieser Fehler habe ich hier gemacht, sorry .. aber mein Code ist klar mit diesem Fehler –

Antwort

0

Das Problem ist gulp-uglifyjs uglifies und automatisch minimiert - so alle Ihre js-Dateien verarbeitet werden, sondern nur eine (verkettete) Datei ausgegeben wird. Die eine generierte Datei erhält den gleichen Namen wie die erste Quelldatei, daher sieht sie zuerst so aus, als ob nur die erste Datei verarbeitet wurde.

Aus diesem Grund gulp-uglifyjshas been deprecated: „Dieses Plugin die schwarze Liste gesetzt wurde, wie es auf uglify verlässt sich die Dateien auf concat statt gulp-concat zu verwenden, die das Paradigma bricht‚Es sollte eine Sache tun‘.“

gulp-uglifyjs funktioniert. Wenn Sie jedoch sicherstellen möchten, dass die Uglified-Dateien separat ausgegeben werden, verwenden Sie gulp-uglify. Ich wette, Sie wissen bereits, wie dies zu tun, aber ich werde für den Fall erklären, es andere Menschen

  1. über die Kommandozeile hilft, Ihre package.json ändern, damit Sie gulp-uglify verwenden:
$ cd your-main-project-directory 
$ npm uninstall -S gulp-uglifyjs 
$ npm install -S gulp-uglify 
  1. in Ihrem gulpfile.js definieren die "verunstalten" var als uglify = require('gulp-uglify') statt uglify = require('gulp-uglifyjs')
Verwandte Themen