我正在尝试弄清楚为什么在较旧的浏览器中某些代码出现错误:
res\values\*.xml
我得到:
未捕获的SyntaxError:意外令牌=>
我正在使用 Babel 对非ES6 兼容设备的代码进行后期处理,但由于某种原因,它没有发挥其魔力:
https://babeljs.io/docs/en/babel-plugin-transform-es2015-arrow-functions
我的 var the_dates = new Array();
Array.prototype.map.call(instance.days.children, i => {
the_dates.push(makeDateInFormatUK(i.dateObj));
});
如下:
.babelrc
我用:
{
"plugins": [
[
"transform-es2015-template-literals", {
"loose": true,
"retainLines": true
},
"transform-es2015-arrow-functions"
]
]
}
没有错误,但是当我查看输出的文件时,仍然得到:
babel /home/chambres/web/x.org/public_html/2018/js/lib/resa-booking.js > /home/chambres/web/x.org/public_html/2018/js/lib-non-es6/resa-booking.js
更新:作为测试,我创建了一个 test.js 文件,该文件具有:
var the_dates = new Array();
Array.prototype.map.call(instance.days.children, i => {
the_dates.push(makeDateInFormatUK(i.dateObj));
});
我的.bablerc文件具有:
var a = () => {};
var bla = 1213;
var test = `foo bar ${bla}`;
运行它,我得到:
{
"plugins": ["@babel/plugin-transform-arrow-functions"]
}
几乎就像只是忽略了 .bablrc 文件一样。如果我使用以下命令运行它:
babel /home/chambres/web/x.org/public_html/2018/js/lib/test.js
var a = () => {};
var bla = 1213;
var test = "foo bar " + bla;
我在做什么错?
答案 0 :(得分:2)
首先,您的.babelrc
是错误的( template-literals
插件的数组应该在选项之后关闭)
应该是
{
"plugins": [
[
"transform-es2015-template-literals", {
"loose": true,
"retainLines": true
}],
"transform-es2015-arrow-functions"
]
}
第二部分,您说.bablerc
文件包含的内容...,并想知道.bablrc
是否被完全忽略。两者都是错误的名称(应为.babelrc
),因此请确保文件名正确。