【发布时间】:2018-07-20 00:36:21
【问题描述】:
示例:
我有 3 个 javascript 文件(Act.js、Body.js、SpriteSheets.js)与 gulp 4.0 一起编译,源代码使用 gulp-sourcemaps 2.6.4 映射。 Body.js 的第 43 行抛出错误,但控制台显示 Act.js 的第 194 行。 Act.js 有 151 行,所以如果我单击控制台中的 Act.js:194 链接,它会打开 Sources 并突出显示 Act.js 中的最后一行 (151)。
所有 3 个 javascript 源代码都在 Sources 选项卡中正确显示,并且控制台会打印正确的类和函数名称,但控制台始终指向 Act.js,甚至是其他文件中存在的控制台日志。
我不知道这是 Chrome 问题、gulp-sourcemaps 问题还是我的代码问题。有什么想法吗?
Gulp 编译函数:
const gulp = require('gulp');
const concat = require('gulp-concat');
const minify = require('gulp-minify');
const plumber = require('gulp-plumber');
const sourcemaps = require('gulp-sourcemaps');
....
const compileJS = (src, dest, name, include) => {
console.log(`js compile ${src}`);
let glob = [src];
if (include){
glob = include.first ? include.src.concat(glob) : glob.concat(include.src);
}
return gulp.src(glob)
.pipe(plumber())
.pipe(sourcemaps.init())
// concat all js in folder and name result as folder's name
.pipe(concat(name + '.js'))
.pipe(minify({
noSource: true,
ext: {
min: '.min.js'
}
}))
.pipe(sourcemaps.write('./', {
sourceMappingURLPrefix: src.replace('./', '').replace('src', '').replace('/**', '').replace('/*.js', '')
}))
.pipe(gulp.dest(dest));
};
我应该注意到,SASS 也正在编译和源映射,并且源映射正常工作。
【问题讨论】:
标签: javascript gulp google-chrome-devtools gulp-sourcemaps