Облачная платформа Google: не удается найти модуль firebase-admin

Я пытаюсь развернуть свой сервер node.js на облачной платформе Google. Он отлично работает, когда я использую его локально (запускать с npm start из node app.js).

Но когда я пытаюсь развернуть его (gcloud deploy), это не удается, и в журнале:

Ошибка: не удается найти модуль firebase-admin в Function.Module._resolveFilename (module.js: 469: 15) в Function.Module._load (module.js: 417: 25) в Module.require (module.js: 497 : 17) в require (internal / module.js: 20: 19) в Object. (/app/app.js:28:16) в Module._compile (module.js: 570: 32) в Object.Module._extensions..js (module.js: 579: 10) в Module.load (module. js: 487: 32) в tryModuleLoad (module.js: 446: 12) в Function.Module._load (module.js: 438: 3)

в app.js я просто использую:

var firebase = require("firebase-admin");

а это мой файл package.json:

{
  "name": "Talk2Me-server",
  "version": "1.0.3",
  "main: "app.js",
  "description": "Talk2Me app server",
  "private": true,
  "license": "Apache-2.0",
  "scripts": {
    "start": "node app.js"
  },
  "repository": {
    "type": "git",
    "url": "https://github.com/guytsur/Talk2Me.git"
  },
  "author": "Talk2Me Team,",
  "contributors": [
    "Guy Tsur<[email protected]>"
  ],
  "cloud-repo-tools": {
    "requiresKeyFile": true,
    "requiresProjectId": true
  },
  "dependencies": {
    "express": "~4.15.2",
    "request": "^2.81.0",
    "firebase-admin": "^4.1.2",
    "firebase": "^2.4.2"
  },
  "devDependencies": {
    "@google-cloud/nodejs-repo-tools": "1.4.16",
    "ava": "~0.21.0",
    "supertest": "~3.0.0",
    "tap-dot": "~1.0.5"
  },
  "engines": {
    "node": ">=4.3.2"
  }
 }

Спасибо!


person guytsur7    schedule 16.09.2017    source источник
comment
Скрипт работает локально? Разве это не удается только при развертывании в Google App Engine?   -  person aofdev    schedule 17.09.2017
comment
Да, это работает локально.   -  person guytsur7    schedule 18.09.2017
comment
На этой неделе у меня была такая же проблема. Я в полном тупике. Пакет находится в package.json. Пакет находится в node_modules.   -  person Kyle Hotchkiss    schedule 19.10.2017


Ответы (1)


Хорошо, мне удалось это решить,

первым делом я переустановил пакеты, используя

npm install --save firebase-admin

и затем я также немного взломал, я добавил в файл пакета:

  "scripts": {
    "start": "npm install firebase-admin; node app.js"
  },

что, я думаю, не лучшая практика, но это сработало.

person guytsur7    schedule 18.09.2017