在我的angularjs应用程序中,我使用了gulp的esprima.js验证。现在,esprima给我这两个js的错误。
internal/streams/legacy.js:59
throw er; // Unhandled stream error in pipe.
^
错误:第38843行:意外标识符
这是第一篇
var filteredCampaignItems = campaignItems.filter((thing, index, self) => index === self.findIndex((t) => (
t.expectedAdvertisementDisplayCount === thing.expectedAdvertisementDisplayCount && t.smartId === thing.smartId
))
)
,第二个是sum的过滤器
app.filter('sumProduct', function() {
return function (input) {
var i = input instanceof Array ? input.length : 0;
var a = arguments.length;
if (i === 0)
return i;
var total = 0;
for(var x of input){
var duration = parseFloat(x.meta_duration);
if(isNaN(duration)){
throw 'filter sumProduct can count only numeric values';
}
total += duration;
}
return total;
}
});
Esprima版本为"version": "4.0.0"
我找到instanbul dependecy我需要获取版本"istanbul": "^1.0.0-alpha.2"
,我手动更改为版本1.0.0-alpha.2
并致电npm i esprima
。我这样做,但同样的错误是抛出。
有人知道如何解决这个问题吗?
答案 0 :(得分:1)
我建议使用BabelJS(https://babeljs.io/)。
Babel是一个编译器,可以将每个“新”功能转换为“旧”ES5代码(目标级别是可配置的,但我猜大多数情况下ES5都可以)
他们甚至有一个在线工具可以实时试用(https://babeljs.io/repl/)