无法解析package.json

时间:2018-08-05 11:21:21

标签: javascript json node.js

我正在尝试将javascript nodejs项目上载到Heroku。 Localhost可以完美运行,但是当我尝试上传时,它无法解析错误:

...
"engines" : { "node" : ">0.11.9" },
...

错误消息:第12行第0列的无效数字文字

完整JSON文件:

{
  "name": "browsergameprojecz",
  "version": "1.0.0",
  "description": "",
  "main": "app.js",
  "dependencies": {
    "express": "^4.16.3",
    "mongojs": "^2.6.0",
    "socket.io": "^2.1.1"
  },
  "engines" : { "node" : ">0.11.9" },

  "devDependencies": {},
  "scripts": {
    "start": "node app.js"
  },
  "author": "",
  "license": "ISC"
}

3 个答案:

答案 0 :(得分:0)

enter image description here

这是来自官方的npm文档。看起来您需要一个版本范围,而不仅仅是一个下限。或近似版本。但是根据我在Heroku上的经验,我从不需要它,似乎heroku可能会使用更高版本的节点。另外,如果您需要特定的版本,可以使用称为engineStrict的东西,您可以在官方的npm文档中查看。

答案 1 :(得分:0)

有林特斯,例如。 Package JSON Validator

...,让您检查此类JSON文件的有效性。

Node 0.11.9外,大约已有5年历史,被标记为unstable

...考虑升级,但可以与其他升级结合使用。

该文件中可能有Windows行尾...通常情况是,“一切看起来不错”但仍然无法使用时,将其排除在外。 dos2unix可用于修复它们。

https://techblog.dorogin.com/writing-cross-platform-npm-scripts-on-windows-79c510339ea6提示,当文件开头有UTF-8 BOM 0x EF BB BF时,这也使其无法解析。除非使用十六进制编辑器进行检查,否则不知道。只需创建具有package.json结尾的新UTF-8和UNIX \n行尾即可解决此问题。

答案 2 :(得分:0)

当数据以JSON格式从服务器端上传到客户端时,如果在HTML页面上显示JS,则某些特殊字符将无法直接显示。背景通过<b>msg</b>传递时,由JS显示在HTML页面msg中,而不是 msg 。这是由于<>之间的HTML内容。进行标记,并以HTML作为实体开始,因此显示不正常。 该解决方案很简单,可以在将JS呈现到HTML页面之前呈现。