Hexo更新后编译EJS报错:Unexpected token '=>' 求助
问题分析与解决
编译EJS时出现Unexpected token '=>'错误,核心原因并非EJS本身不支持箭头函数,而是Hexo更新后,项目依赖的EJS版本或渲染配置发生变化,导致ES6箭头函数语法未被正确解析。
快速解决:替换箭头函数为普通函数
直接将代码中的箭头函数改为传统函数表达式,无需调整依赖即可解决问题,修改后的代码如下:
<% if (page.lang == "en") { site.pages.data .filter(function(p) { return p.lang == "en"; }) .sort(function(p1, p2) { return p1.menuorder - p2.menuorder; }) .forEach( function(p, idx) { %> <%- partial( 'menu_item', {data: p, page: page} ) %> <% }) %> <%- partial( 'menu_item', {data: {path:"", menutitle: "Nederlands"}} ) %> <% } else { site.pages.data .filter(function(p) { return p.lang == "nl"; }) .sort(function(p1, p2) { return p1.menuorder - p2.menuorder; }) .forEach( function(p, idx) { %> <%- partial( 'menu_item', {data: p} ) %> <% }) %> <%- partial( 'menu_item', {data: {path:"en_introduction.html", menutitle: "English"}} ) %> <% } %>
根本解决:确保EJS支持ES6语法
如果想保留箭头函数,可按以下步骤调整:
- 查看
package.json中ejs或hexo-renderer-ejs的版本,确保使用v3.1.6及以上的最新稳定版(该版本默认支持ES6语法) - 若版本过低,执行
npm install ejs@latest或npm install hexo-renderer-ejs@latest更新依赖 - 若更新后仍有问题,在Hexo配置文件
_config.yml中添加以下配置,强制启用ES6支持:ejs: options: strict: false
内容的提问来源于stack exchange,提问作者Simon H
相关产品推荐
相关产品推荐

