cmd执行npm start启动lite-server报错 package.json第226行格式错误
package.json 格式报错导致 npm start 启动失败排查方案
执行npm start启动lite-server时触发的第226行报错,本质是package.json不符合严格JSON规范导致的解析失败,JSON不支持JavaScript对象的宽松语法,补逗号无效说明存在其他语法违规点,按以下步骤排查修复:
- 优先排查226行前后5行范围内的常见语法错误
JSON解析器的报错行号存在滞后性,语法错误实际位置通常在报错行前后几行,重点检查以下违规写法:- 多余尾逗号:这是最高发的错误,JSON不允许任何结构的最后一个条目后加逗号,很多人补逗号时反而给末尾项多打了逗号
- 用单引号
'包裹键名或字符串值:JSON只认可双引号"作为字符串边界 - 存在JS风格注释:包括
//单行注释、/* */块注释,标准JSON不支持任何注释内容 - 键名未加双引号:比如直接写
scripts: {属于JS语法,JSON要求所有键名必须用双引号包裹 - 字符串值中存在未转义的特殊字符:比如路径、描述文本里直接写了未转义的双引号、反斜杠
- 用命令行精准定位错误点,不用肉眼逐行排查
进入package.json所在的项目目录,在cmd中执行以下校验命令:
该命令会直接返回精确的错误位置和错误原因,比npm抛出的行号准确率高很多,比如返回node -e "JSON.parse(require('fs').readFileSync('./package.json','utf8')); console.log('格式校验通过')"Unexpected token } in JSON at position 9872时,直接定位到文件对应偏移位置就能找到语法问题。 - 修复后验证启动
执行上述校验命令提示格式通过后,再运行npm start启动服务,如果此时仍有报错,就不属于JSON格式问题,再根据新的报错提示排查依赖缺失、lite-server配置错误等问题即可。
提示:修改package.json时不要套用JS对象的书写习惯,所有语法必须严格遵循标准JSON规范。
内容的提问来源于stack exchange,提问作者Tushar Parakh
相关产品推荐
相关产品推荐

