Npm ERR! Неверная версия: "1"

Вопрос:

При выполнении "node app" на моей локальной машине все работает.

Но когда я развертываю свой проект в Google App Engine, экземпляр убит, и я обнаружил следующую ошибку в моих журналах:

npm ERR! Invalid version: "1"

Я посмотрел:

npm: Почему версия "0.1" недействителен?

npm ERR! Неверная версия: y

как обходиться npm "Ошибка: Неверная версия:" 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"
  }
}

Ответ 1

В package.json свойства "engine" позволяют блокировать приложение node.js, запущенное на версиях инструментов CLI, которые не поддерживаются.

Вы можете удалить или изменить значения. Из быстрого просмотра документации gcloud они используют последнюю стабильную версию от node.js(v9.4.0), которая поставляется вместе с npm v5.6.0. Вы могли бы позволить вашему приложению работать с существующими версиями и больше, добавляя больше символов перед версией.

"engines": {
    "node": ">6.9.4",
    "npm": ">4.2.0"
},

Ответ 2

В соответствии с документацией, представленной здесь для node -semver, может возникнуть проблема с загружаемыми версиями пакетов зависимостей

Дважды проверьте эти версии или удалите все из них, а затем попробуйте, если они будут работать, а затем добавьте один за другим и, в конечном счете, когда он перестанет работать, вы знаете, какая версия нумерации ошибочна.

Список выглядит следующим образом: потенциальные подозреваемые

"body-parser": "1.1*.1",
"fs": "0.0.1-security"

Ответ 3

попробуйте заменить всю версию зависимостей на *, то же самое с версией npm. затем запустите npm install. Я не уверен, что это сработает или нет, но попробуй.