gulp icon indicating copy to clipboard operation
gulp copied to clipboard

Option to disable loading of existing source maps for the source

Open stof opened this issue 5 years ago • 2 comments

The old gulp-sourcemaps had a loadMaps setting to control whether existing maps should be loaded. Gulp 4 has a single setting in gulp.src which controls both enabling sourcemaps and loading existing ones.

This cause issues for me when npm packages ship their bundle files with a sourcemap while they don't ship their original source code at the same time (and so they have sourcemaps pointing to non-existent files). For such cases, I'd rather have my own source maps point me to their bundle file (that I know about) rather than to their source code (that I don't know about). I would be great if this feature could be available again.

What version of gulp are you using? 4.0.2

What versions of npm and node are you using? node 12.14.1 yarn 1.21.1

stof avatar Jan 16 '20 10:01 stof

I found a workaround for that in the meantime, by resetting the sourceMap of the file after adding them but before processing them. It will still spend time loading existing source maps for nothing though so an option could still make sense:

const gulp = require('gulp')
const through2 = require('through2')
const normalizePath = require('normalize-path')
const concat = require('gulp-concat')

gulp.src('src/*.css', { sourceMaps: true})
  .pipe(through2.obj(function (file, _, cb) {
    if ('sourceMap' in file && file.isBuffer()) {
      file.sourceMap = {
        version: 3,
        names: [],
        mappings: '',
        sources: [normalizePath(file.relative)],
        sourcesContent: [file.contents.toString()]
      }
    }

    cb(null, file)
  }))
  .pipe(concat('output.css')) // Or any other processing
  .pipe(gulp.dest('css', { sourceMaps: '.' }))

stof avatar Jan 16 '20 15:01 stof

The goal of sourcemaps being included into core is to remove all configuration options and make each option from gulp-sourcemaps into a transform stream/plugin.

Can you provide an example repo of the problem you are describing?

phated avatar Jan 20 '20 18:01 phated