我有一个相当平凡的browserify管道,其中包含许多转换(有些是全局的,有些是局部的)。最近,该构建有时会在Unexpected token
上失败(无法正常复制)(我认为与未编译的ES / JSX有关)。堆栈跟踪根本没有用。
我什至不知道捆绑包中的哪个文件真正失败了,更不用说原因了。不确定从何处引发错误(在浏览器化流上没有发出error
事件,也没有传递给bundle
回调--嗯,甚至没有调用cb开头)。
我怀疑其中一个转换期望使用ES5并在遇到ES6或JSX时失败,但是我不知道为什么这样做,因为babelify
转换应该事先运行。要么这样做,要么它会错误地转换部分文件。
要找出根本原因,我需要找出哪个转换(或管道的一部分)失败了。
因此,我有几个问题:
我的编译任务看起来像这样:
function compile () {
return new Promise((resolve, reject) => {
let stream;
stream = browserify({/* opts */ });
stream = stream.transform( envify(), { global: true });
stream = stream.bundle( err => {
if ( err ) reject(err);
});
stream.on("error", err => {
console.error(err);
});
stream.pipe(
fs.createWriteStream( bundle.dist )
.on( "close", resolve )
);
})
}