我正在尝试将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"
}
答案 0 :(得分:0)
这是来自官方的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页面之前呈现。