将JSON.parse()的位置转换为行号和列号

4
如果我的package.json文件有错误,在运行yarn时,会看到以下错误信息:

error An unexpected error occurred: ": Unexpected token } in JSON at position 333"。

我该如何确定是哪一行/列出现了问题?

3个回答

1
在Vim中,你可以输入:goto 94来到第94个字符,就在第94个位置前面。然而,如果你的文件包含多字节字符,这似乎并不起作用。

0

JSONLint

您可以将文本复制/粘贴到jsonlint,或者在本地安装该软件:

npm -g install jsonlint

然后查看文件中的位置:

$ jsonlint package.json
Error: Parse error on line 18:
...er": "^2.3.0"  }}}
--------------------^
Expecting 'EOF', got '}'

0

使用 npm,您的文件名为 package.json

yarn 不同,npm 打印出 package.json 错误的上下文。

它的输出不像 jsonlint 那样简洁,但它不需要额外的包。

使用 npm install--dry-run 来不实际执行任何操作:

$ npm i --dry-run
npm ERR! file /home/ravi/repo/erc20/pet-shop-tut/package.json
npm ERR! code EJSONPARSE
npm ERR! Failed to parse json
npm ERR! Unexpected token '}' at 18:2
npm ERR! }}
npm ERR!  ^
npm ERR! File: /home/ravi/repo/erc20/pet-shop-tut/package.json
npm ERR! Failed to parse package.json data.
npm ERR! package.json must be actual JSON, not just JavaScript.
npm ERR! 
npm ERR! Tell the package author to fix their package.json file. JSON.parse

npm ERR! A complete log of this run can be found in:
npm ERR!     /home/ravi/.cache/npm/_logs/2017-10-20T09_07_12_967Z-debug.log

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接