【问题标题】:gulp-minify without rename original filesgulp-minify 不重命名原始文件
【发布时间】:2015-11-23 21:53:05
【问题描述】:

不加-min后缀可以缩小js文件吗?

我想保留原来的名字。

gulp.task("js-external-release", function() {
    gulp.src(config.vendorJs)
        .pipe(minify())
        .pipe(gulp.dest(config.dist + "/scripts"));
});

【问题讨论】:

  • 实际的包名是什么? gulp-uglify 不会重命名 js 文件。
  • 我使用 gulp-minify 但我改为 gulp-uglify。你是对的,gulp-uglify 不会重命名文件。
  • 好的,我会回答的。

标签: javascript gulp gulp-minify


【解决方案1】:

这是一个非常古老的问题,但它在 Google 上的出现率仍然很高,而且由于 ES6+ 不再积极维护 Uglify 并且 gulp-minify 是,我想我要补充一点,它(现在)完全有可能使用gulp-minify 执行此操作。

如果您在 gulp-minify 选项中将缩小文件的扩展名指定为 .js(或任何输入文件扩展名),则缩小文件将与原始文件具有相同的文件名。问题是gulp-minify 默认情况下还将输入文件的非缩小副本编译到输出目录 - 并且在缩小副本之后添加非缩小副本,从而覆盖它并离开你只需要一份原件。

要解决这个问题,请将 noSource 选项设置为 true - 然后不会输出输入文件的副本:

gulp.task("js-external-release", function() {
    gulp.src(config.vendorJs)
    .pipe(minify({
        ext: {
            min: '.js' // Set the file extension for minified files to just .js
        },
        noSource: true // Don’t output a copy of the source file
    }))
    .pipe(gulp.dest(config.dist + '/scripts'));
});

【讨论】:

  • 这个答案应该更高一些,尤其是在越来越多的人使用 ES6+ 的情况下(我转向 gulp-minify 而不是 uglify 的确切原因)。这解决了我遇到的问题。谢谢!
【解决方案2】:

改用gulp-uglify - 它不会重命名文件,这是大多数 gulp 插件的默认行为。

var gulp = require('gulp');
var uglify = require('gulp-uglify');

gulp.task("js-external-release", function() {
    gulp.src(config.vendorJs)
        .pipe(uglify())
        .pipe(gulp.dest(config.dist + "/scripts"));
});

或者,您可以使用gulp-rename,但切换到uglify 将消除对此类插件的需求,并且在我看来比添加新插件更简单。

【讨论】:

  • import 应该是var uglify = require("gulp-uglify");
  • glup-uglify 不再受支持。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-02-04
  • 2014-04-02
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多