删除部分源映射映射

时间:2017-07-25 18:09:54

标签: javascript gulp gulp-sourcemaps

我有两个gulp任务:第一个处理缓存+ babel + sourcemaps,另一个将翻译后的文件连接成一个单独的JavaScript文件+源图。

gulp.task('prepare:js', () => {
  const babelOptions = {
    "presets": [
      [
        "env",
        { "targets": { "browsers": ["firefox >= 24"]} }
      ]
    ]
  }
  return gulp.src('app/scripts')
    .pipe(changed('.tmp/scripts'))
    .pipe(sourcemaps.init())
    .pipe(babel(babelOptions))
    .pipe(sourcemaps.write('.'))
    .pipe(gulp.dest('.tmp/scripts'))
})

gulp.task('package:js', ['prepapre:js'], () => {
  return gulp.src(['.tmp/scripts/*.js', '.tmp/scripts/**/*.js'])
    .pipe(sourcemaps.init({loadMaps: true}))
    .pipe(concat('app.bundle.js'))
    .pipe(sourcemaps.write('.'))
    .pipe(gulp.dest('dist/scripts))
})

它几乎可以按照我的意愿运作。剩下的问题是源图。实际上,它会生成一个包含重复信息的单一源图:

  • 我的原始代码(位于app/scripts)和连接文件之间的一个映射,感谢loadMaps: true(我想要保留的那个)
  • babelified代码(位于.tmp/scripts)和连接代码(我想要摆脱的代码)之间的另一个映射。

问题是,如果我删除指令.pipe(sourcemaps.init({loadMaps: true})),将不再包含第一个源图。 我也可以合并这两个任务,但我不能再使用gulp-changed了(因为app/scripts中的文件的任何更改都会触发连接并刷新缓存。)

如何摆脱第二次映射?

0 个答案:

没有答案