gpt4 book ai didi

javascript - gulp-uglify 不会保留文件顺序

转载 作者:行者123 更新时间:2023-12-02 19:42:08 25 4
gpt4 key购买 nike

当我使用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 行会更改 jqueryfunctions 文件的顺序,并将 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 文件,并且没有包装在 IIFE 中。

最佳答案

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

.pipe(uglify({
preserveComments: 'license',
compress: { hoist_funs: false }
}))

关于javascript - gulp-uglify 不会保留文件顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39510601/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com