使用Nunjucks开发Mock网站时JSLint/ESLint报const错误求助
解决
const关键字被标记为保留字的问题 你遇到的错误是因为代码里用了ES6(ECMAScript 2015)的const关键字,但你的JavaScript运行环境或者代码检查工具(JSLint/ESLint)没有配置为支持ES6语法。下面是具体的解决步骤:
1. 检查并升级Node.js版本
const是ES6的核心特性,Node.js从v6.0.0开始就全面支持ES6的大部分语法了。如果你的Node版本低于这个版本,就会出现这类语法报错。
- 打开终端运行以下命令查看当前Node版本:
node -v - 如果版本低于v6,建议升级到最新的LTS(长期支持)版本,比如v18.x或v20.x,升级后再运行你的代码应该就能正常执行了。
2. 配置ESLint支持ES6语法
如果你的Node版本已经符合要求,那问题出在ESLint的配置上。需要在项目根目录创建一个.eslintrc.json文件,添加以下配置:
{ "env": { "node": true, "es6": true }, "parserOptions": { "ecmaVersion": 6 } }
这个配置会告诉ESLint你的代码运行在Node环境中,并且支持ES6语法。
3. 配置JSLint支持ES6语法
JSLint默认对语法的限制比较严格,需要明确告诉它允许ES6语法:
- 在你的
.js文件最顶部添加一行注释:
这样JSLint就会识别/*jslint es6: true */const等ES6关键字了。
临时替代方案(不推荐)
如果暂时没法升级Node或配置检查工具,可以把代码里的const替换成var:
var nunjucks = require('nunjucks'); var fs = require('fs'); var files = ["index.html", "About.html", "Membership.html", "Fighting%20Kites.html"]; var srcDir = "./content/"; var outDir = "./output/";
不过var存在变量提升、作用域问题,所以还是优先推荐前面的方案。
尝试完这些步骤后,再运行你的代码和检查工具,应该就能解决报错了。
内容的提问来源于stack exchange,提问作者John Doee
相关产品推荐
相关产品推荐

