2016-08-31 73 views
0

我想要任務'js'需要.js(&不是.min.js)文件在目錄中,uglify &將它們放在同一目錄中,後綴爲'.min',但它gulp-uglify does not`t

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

&我的 '手錶' 的任務:

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" 
    } 

目錄具有5周文件的.js,5個檔.min.js & 1 .PHP; 任務需要目錄中的第一個文件.js,使用它&停止... 我該如何處理目錄中的許多文件?

+0

這並不能解釋你的問題,但你的glob有一個錯誤:要排除.min.js文件,你需要'!js/* .min.js'('!js/.min.js'排除標題爲「.min.js」的文件) – henry

+0

這裏缺少一些信息:你有沒有安裝和需要泵,gulp-uglify和gulp-rename?在控制檯中記錄什麼? (如果泵正在工作,它應該給你一個詳細的錯誤信息) – henry

+0

這個錯誤我在這裏,對不起..但我的代碼是明確的這個錯誤 –

回答

0

問題是gulp-uglifyjs uglifies 自動縮小 - 因此所有的js文件正在處理中,但只有一個(連接的)文件被輸出。一個生成的文件獲得與第一個源文件相同的名稱,所以它首先看起來像只有第一個文件已被處理。

爲此,gulp-uglifyjshas been deprecated「這個插件已經被列入黑名單,因爲它依賴於醜化到Concat的,而不是使用gulp-concat,它打破了‘應該做的一件事’範式的文件。」

gulp-uglifyjs確實有效。但是,如果您想確保單獨輸出文件,請使用gulp-uglify。我敢打賭,你已經知道如何做到這一點,但我會在情況下,它可以幫助其他人

  1. 通過命令行解釋,改變你的package.json讓你在使用gulp-uglify
$ cd your-main-project-directory 
$ npm uninstall -S gulp-uglifyjs 
$ npm install -S gulp-uglify 
  • 在gulpfile.js,定義 「醜化」 var作爲uglify = require('gulp-uglify')代替uglify = require('gulp-uglifyjs')