Javascript SyntaxError:意外标记
自几个月前以来,没有对lang.js文件进行任何更改,但在尝试在本地预览时突然出现语法错误,无法部署更改 不知道为什么会发生这种情况-请有人帮忙好吗?非常感谢 披露/警告:我没有编程知识Javascript SyntaxError:意外标记,javascript,node.js,syntax-error,Javascript,Node.js,Syntax Error,自几个月前以来,没有对lang.js文件进行任何更改,但在尝试在本地预览时突然出现语法错误,无法部署更改 不知道为什么会发生这种情况-请有人帮忙好吗?非常感谢 披露/警告:我没有编程知识 MacBook:pty-bus Ying$ node index.js /Users/Ying/Desktop/pty-bus/lang.js:19 ...req.lang.marketing.global, ^^^ SyntaxError: Unexpected token ... a
MacBook:pty-bus Ying$ node index.js
/Users/Ying/Desktop/pty-bus/lang.js:19
...req.lang.marketing.global,
^^^
SyntaxError: Unexpected token ...
at Object.exports.runInThisContext (vm.js:78:16)
at Module._compile (module.js:543:28)
at Object.Module._extensions..js (module.js:580:10)
at Module.load (module.js:488:32)
at tryModuleLoad (module.js:447:12)
at Function.Module._load (module.js:439:3)
at Module.require (module.js:498:17)
at require (internal/module.js:20:19)
at Object.<anonymous> (/Users/Ying/Desktop/pty-bus/index.js:20:36)
at Module._compile (module.js:571:32)
看起来您使用扩展运算符的能力已被删除。我猜您最近更改了节点版本,或者编辑了babelrc或webpack配置。不管怎样,我认为该文件中的当前代码没有任何问题。Tt看起来像是节点v7.4.0不支持扩展运算符-更改
让renderObj={…}
到
let renderObj = {
title: req.lang.titles[template],
site_title: req.lang.site_title,
site_description: req.lang.site_description,
langCode: req.langCode,
path: req.path
};
Object.assign(renderObj,
req.lang.marketing.global,
(req.lang.marketing[template] || {}),
vars
);
renderObj.lang = Object.assign({}, (req.lang.marketing.global.language || {}));
Node.js v7.4.0有V8 5.4,它支持数组的
…
运算符,但不支持对象。您至少需要一个Node.js 8分支版本(v8.15.0)。您使用的Node版本是什么?(键入node--version
)您在中丢失了我,我没有任何编程知识
@quentinV7.4。0@Quentin刚刚检查,节点版本正确。我发现这真的很奇怪,因为我已经几个月没有接触过这个文件了,而且我所有其他的提交和部署工作都很好。请看-Node.js支持扩展语法,至少从5.12开始就没有任何问题。@Quentin-不,你错了-我检查了6.3.1版,在7.4.0中,“…
”不起作用,…
适用于数组,但不适用于对象。
let renderObj = {
title: req.lang.titles[template],
site_title: req.lang.site_title,
site_description: req.lang.site_description,
langCode: req.langCode,
path: req.path
};
Object.assign(renderObj,
req.lang.marketing.global,
(req.lang.marketing[template] || {}),
vars
);
renderObj.lang = Object.assign({}, (req.lang.marketing.global.language || {}));