2017-09-16 123 views
0

我正在嘗試將我的node.js服務器部署到谷歌雲平臺。 當我在本地使用它時,它的工作完美(使用npm startnode app.js運行它)。谷歌雲平臺:「找不到模塊firebase-admin」

但是當我嘗試將它部署到(gcloud deploy),它失敗了,並在日誌:

Error: Cannot find module 'firebase-admin' at Function.Module._resolveFilename (module.js:469:15) at Function.Module._load (module.js:417:25) at Module.require (module.js:497:17) at require (internal/module.js:20:19) at Object. (/app/app.js:28:16) at Module._compile (module.js:570:32) at Object.Module._extensions..js (module.js:579:10) at Module.load (module.js:487:32) at tryModuleLoad (module.js:446:12) at Function.Module._load (module.js:438:3)

在app.js

我簡單地使用:

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

,這是我的包.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" 
    } 
} 

謝謝!

+0

該腳本是否可以在本地使用?當您部署到Google App Engine時,它只會失敗嗎? – aofdev

+0

是的,它在本地工作。 – guytsur7

+0

本週我一直有這個問題。我完全難住。該軟件包位於package.json中。該軟件包位於node_modules中。 –

回答

0

好吧,我設法解決它,

第一件事,我重新安裝使用

npm install --save firebase-admin 

包,比我還做了一個小黑客,我加入到包文件:

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

我認爲這不是最好的做法,但它的工作。