2011-04-13 71 views
9

尝试使用一个lib,但得到这个错误...这个package.json文件需要改变以使用npm 0.3.0吗?

npm ERR! JSON.parse Failed to parse package.json data. 
npm ERR! JSON.parse Note that package.json must be actual JSON, not 
npm ERR! JSON.parse just a JavaScript object. 
npm ERR! JSON.parse 
npm ERR! JSON.parse This changed in npm 0.3.0, and is not a bug in npm. 
npm ERR! JSON.parse Tell the package author to fix their package.json file. 

不知道什么是可能需要改变,使其有效的JSON,非常感谢!

+0

http://jsonlint.com/ – Domenic 2013-12-12 21:22:27

+0

@fancy查看我的回答,我认为它是最优雅的方式。你可以重置安塞? – Barun 2015-07-28 12:20:33

回答

14

有效的JSON必须同时具有引号中的对象的键和值。用引号括住所有的键,这会使错误消失。

参考:JSON spec

更新:我做了肮脏的工作适合你。让我知道这是否修复它。

{ "name": "embedly" 
, "version": "0.3.2" 
, "description": "Embedly client library for node" 
, "homepage": "https://github.com/embedly/embedly-node" 
, "keywords": [] 
, "author": 
    { "name": "Bob Corsaro" 
    , "email": "[email protected]" 
    , "url": "http://www.google.com/profiles/rcorsaro" 
    } 
, "repository": 
    { "type": "git" 
    , "url": "git://github.com/embedly/embedly-node" 
    } 
, "bugs": { "web": "http://github.com/embedly/embedly-node/issues/" } 
, "directories": 
    { "doc": "./docs" 
    , "lib": "./lib" 
    , "test": "./test" 
    } 
, "dependencies": {"hashish": "", "qs": ""} 
, "devDependencies": {"vows": ">= 0.5.6"} 
, "main": "./lib/embedly.js" 
, "scripts": { "test": "vows" } 
, "bin": 
    { "embedly_oembed": "bin/embedly_oembed.js" 
    , "embedly_objectify": "bin/embedly_objectify.js" 
    , "embedly_preview": "bin/embedly_preview.js" 
    } 
} 
+4

其他常见的区别是任何字典或数组中的尾随常见。 JSON不能有尾随逗号。 – Erik 2013-08-24 18:14:20

+0

由于我不得不在报价单中包裹布尔值,所以这也抛出了我。这是通过http://jsonlint.com/没有引号。 – Antfish 2015-05-14 09:36:24

5

除了@Hans恩格尔答案使用npm help json得到的应该是在的package.json文件是什么规格

16

只是为了完成答案,你可以简单地使用在线JSON验证验证你的package.json
我强烈建议http://jsonlint.com/,将您的package.json粘贴到textarea中,然后单击验证按钮,就是这样!

+1

+100 upvotes如果我可以给 – 2015-03-21 12:43:57

+0

@SarasArya我的答案有多少upvotes? – Barun 2015-07-17 11:47:47

+0

我很推荐我验证json对象的方式@afshin Mehrabani – Barun 2015-07-28 12:21:58

0

我已经经历过这个问题,在我的情况下,它只是代替逗号(,)。 我已经使用点(。)。 你可以简单地在任何JSON验证器中打开它,它会帮助你。 其中一个JSON验证器的链接如下。 http://www.bodurov.com/JsonFormatter/

8

超酷的方式来解决/验证的package.json:

node package.json

,你有你的JSON验证或错误行。

为什么使用jsonlint,听起来很蹩脚。

+0

可悲的是允许一个upvote。 :p – 2015-07-20 09:01:49

0

我也收到了同样的错误信息,首先运行npm package.json来检查package.json文件中的错误,如果没有的话运行npm cache clean