【发布时间】:2017-06-06 21:08:01
【问题描述】:
我将直接从我的代码结构示例开始。假设以下三个普通文件位于名为 /path/from/root/js/src 的同一目录中
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"
}
【问题讨论】:
标签: require source-maps gulp-sourcemaps