首页 > 解决方案 > Gulp 3 - 使 js 文件比普通文件大 3 倍

问题描述

由于 gulp 和 js 文件缩小存在问题,gulp 会生成 3 倍大的文件。

例如 lightgallery.min.js - 49kb(从 GitHub 下载)然后我通过 npm 下载相同的文件并在 js 文件中需要(如果我从 github 插入下载的文件内容,则相同)

global.lightgallery = require('lightgallery');

并运行 gulp 它使文件133kb

吞咽任务

gulp.task('scripts', function() {
    gulp.src( SOURCEPATHS.jsSource )
        .pipe( browserify() )
        .pipe( uglify() )
        .pipe( rename({ extname: '.min.js' }) )
        .pipe( gulp.dest(APPPATH.js) );
});

不使用任何源地图。

也许有人遇到同样的问题?

标签: javascriptnpmgulp

解决方案


该包lightgallery具有在 npm 描述及其package.json中指定的 jQuery 依赖项。当 Browserify 执行它的操作时,它会检查包的依赖关系图并将所有内容拉入。缩小的 jQuery v3.3.1 约为85kb,这应该可以解释差异。

如果你在其他地方已经有 jQuery,你通常可以让 Browserify 忽略那个特定的包。例如,使用gulp-browserify包:

.pipe(browserify({ ignore: 'jquery' }))

更新

您可以使用gulp-if插件有选择地将其应用于文件:

.pipe(
    gulpif(
        'jquery.js',
        browserify(),
        browserify({ ignore: ['jquery'] })
    )
)

推荐阅读