问题:
当做"节点app"在我的本地机器上,一切正常。
但是当我将项目部署到Google App Engine时,该实例被终止,我在日志中发现以下错误:
npm ERR! Invalid version: "1"
我看了看:
npm: Why is a version "0.1" invalid?
how to workaround npm "Error: Invalid version: "0.1" BUG?
我需要纠正的错误是什么?
部署过程由gcloud app deploy --version=deploy
始终以:
结束ERROR: (gcloud.app.deploy) Error Response: [4] Timed out waiting for the app infrastructure to become healthy.
这是我的package.json
CODE:
的package.json
{
"name": "Name",
"version": "1.0.0",
"description": "Desc",
"main": "app.js",
"engines": {
"node": "6.9.4",
"npm": "4.2.0"
},
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"start": "node app.js",
"minify": "html-minifier --input-dir ./viewsCopy --output-dir ./views-minified --collapse-whitespace --html5 --minify-js true"
},
"author": "author",
"license": "copyright",
"dependencies": {
"bad-words": "^1.5.1",
"body-parser": "1.1*.1",
"connect-flash": "0.1.1",
"decimal.js": "^9.0.1",
"ejs": "2.5.5",
"events": "^1.1.1",
"express": "4.15.2",
"express-session": "1.15.2",
"express-validator": "3.2.0",
"fast-crc32c": "^1.0.4",
"firebase": "3.9.0",
"firebase-admin": "^5.2.1",
"fs": "0.0.1-security",
"glob": "7.1.1",
"helmet": "3.5.0",
"html-minifier": "^3.5.0",
"morgan": "1.8.1",
"multer": "1.3.0",
"nodemailer": "4.0.0",
"path": "0.12.7",
"raven": "^2.0.0",
"request": "^2.83.0",
"sanitize-html": "^1.14.1",
"uglify-js": "^3.0.6"
}
}
答案 0 :(得分:3)
在package.json中,'引擎' properties允许您阻止在不受支持的CLI工具版本上运行的node.js应用程序。
您可以删除或修改值。从快速查看gcloud文档开始,他们使用了与npm v5.6.0捆绑在一起的node.js(v9.4.0)中的最新稳定版。您可以通过在版本之前添加大于字符来允许应用程序与现有版本和更高版本一起运行。
{{1}}
答案 1 :(得分:1)
根据此处为node-semver提供的文档,正在加载的依赖包版本可能存在问题
仔细检查这些版本或删除所有这些版本,然后尝试,如果它可以工作,然后继续逐个添加,最终当它停止工作时,你知道哪个版本编号有问题
列表如下可能是可能的嫌疑人
"body-parser": "1.1*.1",
"fs": "0.0.1-security"
答案 2 :(得分:1)
尝试用*
替换所有依赖项版本,与npm版本相同。
然后运行npm install
。
我不确定它会起作用,但试试看。
答案 3 :(得分:1)
在我的情况下是
"version": "1"
我已将其编辑为“ 1.0.0”,并且已修复
答案 4 :(得分:0)
package.json->版本语义可能需要类似于1.0.0