强制bundle()在找不到模块时抛出错误
我正在用browserify使用gulp。 我有一个bundle()函数,就像这样:
function bundle(script) {
return browserify( get_browserify_config(script) )
.bundle()
.on('error', function(err){
notifyError('error while bundling ' + script );
console.log('-- error while bundling ' + script + ' --');
errorLog(err);
})
.pipe(source(script))
.on('error', errorLog)
.pipe(buffer())
.pipe(gulpIf(!isProductionBuild, sourcemaps.init()))
.pipe(uglify())
.on('error', errorLog)
.pipe(gulpIf(!isProductionBuild, sourcemaps.write('./')))
.pipe(gulp.dest(PATH_TO_SERVE_SCRIPTS))
.on('error', errorLog)
.pipe(gulp.dest(PATH_TO_TARGET_SCRIPTS))
.on('error', errorLog)
.on('end', function() {
jsLog('finished bundle of ' + script);
});
}
当我将具有有效的require
依赖关系的脚本传递给它时,它工作正常。 但是,如果我的依赖性不好,它不会引发任何错误。
例如,如果我有一个文件'app.js'需要一个不存在的模块,如:
require('./xyzrandomnotexistingmodulename');
我的捆绑包中没有出现任何错误。 我只是在PATH_TO_TARGET_SCRIPTS上得到一个app.js
捆绑文件,它只是抱怨模块没有找到:
!function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var a="function"==typeof require&&require;if(!f&&a)return a(i,!0);if(u)return u(i,!0);var c=new Error("Cannot find module '"+i+"'");throw c.code="MODULE_NOT_FOUND",c}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n?n:r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u="function"==typeof require&&require,i=0;i<t.length;i++)o(t[i]);return o}({},{},[]);
我宁愿让browserify停止捆绑并抛出错误,而不是生成不工作的捆绑包。
有没有一种方法来配置browserify抛出一个错误或发出错误事件,而不是默默继续捆绑,当它没有找到一个模块?
链接地址: http://www.djcxy.com/p/32915.html