我正在使用 Browserify 来捆绑我所有的 Javascript 资产。然而,随着应用程序变得越来越复杂,Browserify 开始变得非常缓慢,所以我切换到 Watchify,它很好地解决了这个问题。
然而,这带来了一个新的问题。在此期间,我正在输出源映射以进行调试,并使用 Minifyify 缩小输出。在第一次运行 Watchify 时,这工作正常,源映射正确映射到原始文件。但是,如果我随后修改文件,则源映射最终会指向原始文件的缩小版本,而不是未缩小的版本。
我假设这是因为 Watchify 没有接收输入源映射然后对其进行修改,但我不确定。
这是我的代码:
var watchScripts = function() {
var rebundle = function() {
return bundler.bundle()
.pipe(source('app.min.js'))
.pipe(gulp.dest('build/scripts/'));
};
var bundler = watchify({
entries: ['./app/scripts/app.js', './app/jsx/app.jsx'],
extensions: ['.js', '.jsx']
})
.plugin('minifyify', {
map: 'app.js.map',
output: 'build/scripts/app.js.map'
})
.transform(reactify)
.transform(debowerify)
.on('update', rebundle);
return rebundle();
};
这里出了什么问题?Watchify 是否确实在第二次运行时没有考虑到已经存在的源映射,还是其他原因?无论哪种方式,我如何让这个工作正常,以便源映射正确链接回第二次和后续通过 Watchify 运行的未缩小的非捆绑资产?