首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Gulp uglify,rename和sourcemaps

Gulp uglify,rename和sourcemaps
EN

Stack Overflow用户
提问于 2018-09-05 07:01:26
回答 2查看 1.5K关注 0票数 1

我正尝试在Gulp中完成以下操作: 1)将JS文件从指定的文件夹缩小到名为“dist”的文件夹中。2)将'.min‘附加到缩小的文件名中。3)提供精简文件的源映射,并将其放在名为“map”的文件夹中。

我使用的是‘gulp uglify’,'gulp-rename‘和'gulp-sourcemaps’。

这就是我所拥有的:

代码语言:javascript
运行
复制
var gulp = require('gulp');
var uglify = require('gulp-uglify');
var rename = require('gulp-rename');
var sourcemaps = require('gulp-sourcemaps');

gulp.task('compress', function () {
    gulp.src('src/*.js')
    .pipe(sourcemaps.init())
    .pipe(uglify())
    .pipe(rename({suffix: '.min'}))
    .pipe(sourcemaps.write('../maps'))
    .pipe(gulp.dest('dist'));
});

除了映射文件还附加了'.min‘之外,一切都按预期运行。如何将重命名限制为仅发生在dist文件夹中?

EN

回答 2

Stack Overflow用户

发布于 2018-09-05 23:55:20

我做了更多的挖掘,找到了解决这个问题的方法。我最终将单个任务分解为两个不同的任务。一旦文件在dist文件夹中,我就调用“重命名”任务。我还使用了‘乙烯基路径’和'del‘来删除重命名的文件。这就是我所拥有的:

代码语言:javascript
运行
复制
var gulp = require('gulp');
var uglify = require('gulp-uglify');
var rename = require('gulp-rename');
var sourcemaps = require('gulp-sourcemaps');
var del = require('del');
var vinylPaths = require('vinyl-paths');

gulp.task('compress', ['uglify','rename']);

gulp.task('uglify', function() {
    return gulp.src('src/*.js')
    .pipe(sourcemaps.init())
    .pipe(uglify())
    .pipe(sourcemaps.write('../maps'))
    .pipe(gulp.dest('dist'));
});

gulp.task('rename', ['uglify'], function() {
    return gulp.src('dist/*.js')
    .pipe(vinylPaths(del))
    .pipe(rename({suffix: '.min'}))
    .pipe(gulp.dest('dist'));
});
票数 1
EN

Stack Overflow用户

发布于 2018-11-15 14:34:30

通过利用gulp-rename接受函数作为输入的能力,可以将这两个任务组合成一个任务:

代码语言:javascript
运行
复制
gulp.task('prod', function() {
    return gulp.src('src.js'))
        .pipe(sourcemaps.init())
        .pipe(uglify())
        .pipe(sourcemaps.write('.'))
        .pipe(rename(function(path) {
            if (!path.extname.endsWith('.map')) {
                path.basename += '.min';
                //gulp-rename with function only concats 'dirname + basename + extname'
            }
        }))
        .pipe(gulp.dest('build/_asset/js'));
});

如果文件扩展名不是.map,该函数基本上“只”附加.min后缀。输出将是src.min.jssrc.js.map

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52175021

复制
相关文章

相似问题

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