Prettier报错:Unexpected token "�" (0xFFFD) in JSON at position 0

125 阅读1分钟

在React项目搭建环境中出现的问题,搜索半天最后发现是编码问题,成功解决。

Bug背景

使用Prettier格式化工具,并设置了了基于husky+lint-staged工具的自动提交功能,则在每次git提交时会报错,如下图: image.png 根据JSON Error的提示,初步判断是prettierrc.json的问题,查找资料可知有以下几种情况:

  1. JSON注释问题。

  2. JSON.parse能将JSON字符串转变成JS对象,但在一些转换中可能出现Unexpected token ’ in JSON at position 1的错误,这是因为被转换的值不符合JSON格式而造成的。

JSON官方明确规定,JSON数据的key与value必须使用双引号""包裹,否则在转换过程中会导致错误。

  1. 文件路径不对

  2. 文件格式问题,json文件最后不能有逗号

原文链接:blog.csdn.net/The_Lucky_o…

但是反复核对json文件的内容,都符合要求

{
  "useTabs": false,
  "tabWidth": 2,
  "printWidth": 100,
  "singleQuote": true,
  "trailingComma": "none",
  "bracketSpacing": true,
  "semi": false
}

原来是进制的锅

于是目光投向了(0xFFFD)这个奇怪的字符,因为它是奇怪的十六进制。发现默认的编码格式为UTF-16,更改为UTF-8。此时要注意用utf-8再保存一遍json文件,并且重新进行git的add操作和commit操作,问题解决!

image.png