我将直接以我的代码结构为例。假设以下三个简单文件驻留叫同一个目录内/path/from/root/js/src
为包含npm require和gulp模块的单个js文件生成SourceMaps
module1.js:
console.log(1);
module2.js:
console.log(2);
app.js:
require('./module1');
require('./module2');
然后,我正在使用下面的gulp任务来将JavaScript编译成一个文件,其中包含gulp:
var gulp = require('gulp');
var sourcemaps = require('gulp-sourcemaps');
var path = require('path');
var browserify = require('gulp-browserify');
gulp.task('default', function() {
gulp.src(['./js/src/app.js'])
.pipe(sourcemaps.init())
.pipe(browserify()).on('error', function(err){
console.log(err);
})
.pipe(sourcemaps.write('.'))
.pipe(gulp.dest(function(file) {
file.base = path.dirname(file.path);
return path.join(path.dirname(file.path), '/../');
}))
});
运行gulp
后我收到编译的JavaScript app.js
刚刚记录1 2和app.js.map
如预期,但在浏览器中的原始文件没有提及。
您可以通过查看控制台行1和2来检查它们是否由app.js
引用,而不是由module1|2.js
引用。如果我需要修复一个错误,那么随着文件在我的项目中越来越大,我不知道哪个文件将来会生成控制台符号。
我在做什么错?我没有正确使用源地图吗?
的app.js.map
文件没有引用的模块,它看起来像这样:
{
"version":3,
"names":[],
"mappings":"",
"sources":["app.js"],
"sourcesContent":["require('./module1');\r\nrequire('./module2');"],
"file":"app.js"
}