【问题标题】:What needs to change in this package.json file to work with npm 0.3.0?此 package.json 文件需要更改哪些内容才能使用 npm 0.3.0?
【发布时间】:2011-08-04 09:41:39
【问题描述】:

尝试使用 lib 但出现此错误...

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,非常感谢!

【问题讨论】:

  • @fancy 检查我的答案,我认为这是最优雅的方式。你能重置分析器吗?

标签: javascript json node.js package npm


【解决方案1】:

为了完成答案,您可以简单地使用在线 JSON 验证器来验证您的 package.json
我强烈推荐http://jsonlint.com/,将您的package.json 粘贴到文本区域并点击验证按钮,仅此而已!

【讨论】:

  • 我强烈推荐我的验证 json 对象的方法@afshin Mehrabani
【解决方案2】:

有效的 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": "bob@embed.ly"
  , "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"
  }
}

【讨论】:

  • 另一个共同的区别是任何字典或数组中的尾随共同点。 JSON 不能有尾随逗号。
  • 这也让我很震惊,因为我不得不用引号将布尔值括起来。它在不带引号的情况下传递jsonlint.com
【解决方案3】:

修复/验证 package.json 的超酷方法:

node package.json

您的 json 验证或错误行已验证。

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

【讨论】:

    【解决方案4】:

    除了@Hans Engel 的回答,使用npm help json 来获取 package.json 文件中应该包含的内容的规范

    【讨论】:

      【解决方案5】:

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

      【讨论】:

        【解决方案6】:

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2017-01-25
          • 1970-01-01
          • 2023-02-07
          • 1970-01-01
          • 2015-03-25
          • 1970-01-01
          相关资源
          最近更新 更多