gulp-uglify不起作用

时间:2016-08-31 08:27:47

标签: gulp gulp-watch gulp-uglify

我想要任务' js'在目录中获取.js(& not .min.js)文件,uglify&将它们放在带有后缀的同一目录中:' .min',但它不能与目录中的许多文件一起使用,我的任务:

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,使用它&停止... 如何处理目录中的许多文件?

1 个答案:

答案 0 :(得分:0)

问题是gulp-uglifyjs uglifies 自动缩小 - 因此正在处理所有js文件,但只输出一个(连接的)文件。生成的文件与第一个源文件的名称相同,因此它首先查看只有第一个文件已被处理。

出于这个原因,gulp-uglifyjs has been deprecated"此插件已被列入黑名单,因为它依赖于Uglify来连接文件而不是使用gulp-concat,这会打破'它应该做一件事' 。范例"

gulp-uglifyjs确实有用。但是,如果要确保单独输出uglified文件,请使用gulp-uglify。我打赌你已经知道如何做到这一点,但我会解释,以防它帮助其他人

  1. 通过命令行,更改您的package.json,以便您使用gulp-uglify
  2. $ cd your-main-project-directory
    $ npm uninstall -S gulp-uglifyjs
    $ npm install -S gulp-uglify
    
    1. 在你的gulpfile.js中,定义" uglify" varuglify = require('gulp-uglify')而不是uglify = require('gulp-uglifyjs')