当我使用gulp-uglify缩小Javascript文件时,顺序变得混乱。
假设我让这个任务按预期工作:
var gulp = require('gulp');
var rename = require('gulp-rename');
var gp_concat = require('gulp-concat');
gulp.task('js', function() {
gulp.src([
'./public/bower_components/jquery/dist/jquery.min.js',
'./public/js/functions.js',
])
.pipe(gp_concat('combined.js'))
.pipe(gulp.dest(path.js + '/dist'))
});向其添加uglify行将更改jquery和functions文件的顺序,并将functions.js置于jquery之上。
var gulp = require('gulp');
var rename = require('gulp-rename');
var uglify = require('gulp-uglify');
var gp_concat = require('gulp-concat');
gulp.task('js', function() {
gulp.src([
'./public/bower_components/jquery/dist/jquery.min.js',
'./public/js/functions.js',
])
.pipe(gp_concat('combined.js'))
.pipe(gulp.dest(path.js + '/dist'))
.pipe(uglify({
preserveComments: 'license'
}))
.pipe(rename({suffix: '.min'}))
.pipe(gulp.dest(path.js + '/dist'))
});有什么可能的解决方案吗?当然,functions.js只是一个包含函数的平面Javascript文件,而不是包装在生命周期中。
发布于 2016-09-15 21:03:13
关于使用hoist_funs,Karol Klepacki's answer是正确的,但这是UglifyJS compressor的一个选项。因此,它需要在compress选项中提供:
.pipe(uglify({
preserveComments: 'license',
compress: { hoist_funs: false }
}))发布于 2016-09-15 20:25:21
请尝试禁用函数提升:
var gulp = require('gulp');
var rename = require('gulp-rename');
var uglify = require('gulp-uglify');
var gp_concat = require('gulp-concat');
gulp.task('js', function() {
gulp.src([
'./public/bower_components/jquery/dist/jquery.min.js',
'./public/js/functions.js',
])
.pipe(gp_concat('combined.js'))
.pipe(gulp.dest(path.js + '/dist'))
.pipe(uglify({
preserveComments: 'license',
hoist_funs: false
}))
.pipe(rename({suffix: '.min'}))
.pipe(gulp.dest(path.js + '/dist'))
});https://stackoverflow.com/questions/39510601
复制相似问题