2017-09-16 21 views
0

Google Cloud Platformにnode.jsサーバーを配備しようとしています。 ローカルで使用すると完全に動作します(npm startnode app.jsで実行してください)。Googleクラウドプラットフォーム:「firebase-adminモジュールが見つかりません」

しかし、私は(gcloud deploy)を、それを展開しようとすると、それが失敗し、ログに:私は単に使用app.jsで

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)

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

私はそれを解決するために管理OK]をクリックして、

最初の事は私が

npm install --save firebase-admin 

を使用してパッケージを再インストールし、私も少しハックしたよりも、私は、パッケージファイルに追加:

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

私はこれがベストプラクティスではないと思いますが、うまくいきました。

関連する問題