首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >gulp uglify不会保留文件顺序

gulp uglify不会保留文件顺序
EN

Stack Overflow用户
提问于 2016-09-15 20:04:41
回答 2查看 1.6K关注 0票数 2

当我使用gulp-uglify缩小Javascript文件时,顺序变得混乱。

假设我让这个任务按预期工作:

代码语言: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行将更改jqueryfunctions文件的顺序,并将functions.js置于jquery之上。

代码语言:javascript
复制
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文件,而不是包装在生命周期中。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-09-15 21:03:13

关于使用hoist_funsKarol Klepacki's answer是正确的,但这是UglifyJS compressor的一个选项。因此,它需要在compress选项中提供:

代码语言:javascript
复制
.pipe(uglify({
   preserveComments: 'license',
   compress: { hoist_funs: false }
}))
票数 9
EN

Stack Overflow用户

发布于 2016-09-15 20:25:21

请尝试禁用函数提升:

代码语言:javascript
复制
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'))
});
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39510601

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档