该npm包是一个F.I.S的插件,作用是在js文件编译时自动的在function内部加上try/catch,并且catch部分代码如下:其中alog为百度前端统计框架.
catch(e){
if(typeof alog != 'undefined'){ //
alog('exception.fire', 'catch', {
msg: e.message || e.description,
path: 'common:common/widget/slide/slide.js', //编译前的js文件路径
ln: 25 //编译前该function的结束行号
});
}
}
示例1:
//编译前
var slide = {
init: function(name){
this.name = name;
},
name: ''
}
//编译后
var slide = {
init: function(name){try{
this.name = name;
}catch(e){............}},
name: ''
}
示例2:
//编译前
exports.init = function(name)
{
slide.init(name);
}
//编译后
exports.init = function(name)
{try{
slide.init(name);
}catch(e){............}}
示例3:
//编译前
$('#search').on('click', function(){
search();
});
//编译后
$('#search').on('click', function(){try{
search();
}catch(e){............}});
示例4:
//编译前
function init(){
conosle.log('init');
}
//编译后:对于直接的函数声明,插件可以配置是否加try/catch,配置方法见下节
/*************** funcDeclaration:true ************/
function init(){try{
conosle.log('init');
}catch(e){............}}
/*************** funcDeclaration:false ***********/
function init(){
conosle.log('init');
}
安装插件
$ npm install -g fis-preprocessor-js-exception-catch
然后在fis-conf.js里面配置使用
fis.config.merge({
modules: {
preprocessor: {
js: 'js-exception-catch'
}
},
settings: {
preprocessor:{
"js-exception-catch":{
file: {
include: /.js$/, //文件名的命中正则,不配置则都不命中
exclude: /\/common\//i //排除
},
func: {
include: /init/i, //函数名的命中正则,不配置则都不命中
exclude: '' //排除
},
funcDeclaration: true //直接的函数声明是否也生效
}
}
}
});