在React项目搭建环境中出现的问题,搜索半天最后发现是编码问题,成功解决。
Bug背景
使用Prettier格式化工具,并设置了了基于husky+lint-staged工具的自动提交功能,则在每次git提交时会报错,如下图:
根据JSON Error的提示,初步判断是prettierrc.json的问题,查找资料可知有以下几种情况:
-
JSON注释问题。
-
JSON.parse能将JSON字符串转变成JS对象,但在一些转换中可能出现Unexpected token ’ in JSON at position 1的错误,这是因为被转换的值不符合JSON格式而造成的。
JSON官方明确规定,JSON数据的key与value必须使用双引号""包裹,否则在转换过程中会导致错误。
-
文件路径不对
-
文件格式问题,json文件最后不能有逗号
但是反复核对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操作,问题解决!