使用Gulp将文件保存在不同的文件夹中时保留源映射

时间:2015-01-31 18:48:27

标签: gulp source-maps

我正在尝试制作一个带有JS文件的Gulp任务,对它们运行uglify,为文件名添加.min后缀,然后将它们保存在与源文件夹不同的目标文件夹中。棘手的部分是保持源地图有效......

gulp.task('uglify-js', function () {
    // Fetch CSS files
    return gulp.src(['assets/js/*.js', '!assets/js/*.min.js'])

        // Start source map
        .pipe(sourcemaps.init({loadMaps: true}))

        // Uglify JS
        .pipe(uglify())

        // Add file suffix
        .pipe(rename({suffix: '.min'}))

        // Save source map
        .pipe(sourcemaps.write())

        // Save output to destination folder
        .pipe(gulp.dest('public/js/'));
});

我尝试了很多不同的选项,但源地图似乎不起作用...... 有谁知道这样做的正确方法?

我的包裹:

"devDependencies": {
  "gulp": "^3.8.10",
  "gulp-rename": "^1.2.0",
  "gulp-sourcemaps": "^1.3.0",
  "gulp-uglify": "^1.0.2"
}

非常感谢! :)

1 个答案:

答案 0 :(得分:1)

问题是gulp-rename目前不支持gulp-sourcemaps,如their latest issue中所述。

另一种方法是使用支持源映射的不同lib,例如gulp-concat,它支持重命名文件。但是,如果您不想连接文件,则可以始终打开一个针对gulp-rename的拉取请求,以添加源映射支持,如documented here

更新:截至2015-03-14 gulp-rename now supports sourcemaps